chore(release): 3.15.2
本仓库的 目的 是为 san 提供一个 SSR 代码框架和工具,以及内置了 JavaScript 的代码生成。
npm i san@latest san-ssr@latest
san-ssr 需要 san 提供的模板字符串解析和 TypeScript 类型,因此对 san 的版本有依赖。你需要安装对应版本的 san 和 san-ssr。 san-ssr 支持的 san 版本声明在 peerDependencies 里,因此只要能安装成功就能正确工作。一般的建议如下:
peerDependencies
更多讨论请参考:baidu/san/issues/441
SanProject 类 提供了你会用到的所有接口:
const { SanProject } = require('san-ssr') const app = require('src/component.js') const project = new SanProject() const render = project.compileToRenderer(app) console.log(render({name: 'harttle'}))
详细请参考 API 文档:SanProject,或 /demo 下的示例项目。
san-ssr 提供了 San 组件的静态分析,提供了项目文件集合和 San 组件树,以及二者的对应关系。 具体的代码生成抽象为 Compiler 接口,目前有 JS 和 PHP 两个实现,其中 san-ssr-target-js 内置在本仓库中:
CLI 参数 --target 参数用来选择目标代码,默认为 js:
--target
js
san-ssr --target js ./component.js > ssr.js
编程接口也可以通过 SanProject#compile() 的第二个参数来指定目标,第三个参数来指定传给 Compiler 实现的参数:
SanProject#compile()
import { Target, SanProject } from 'san-ssr' import { writeFileSync } from 'fs' const project = new SanProject() const targetCode = project.compile('src/component.ts', Target.PHP, { emitHeader: true }) writeFileSync('ssr.php', targetCode)
指定非 js 的目标时,san-ssr 会从 CWD 开始寻找 san-ssr-target-${target} 的包,因此需要作为 san-ssr 的 peer 来安装。例如:
san-ssr-target-${target}
npm i san-ssr san-ssr-target-php
欢迎任何类型的 Issue、完整的 Pull Request、或者不完整的 Pull Request。可以按照下面的步骤开始开发:
npm install
./bin/debug array-literal
npm run e2e
npm run check
准备步骤:
export PATH=$PATH:./bin
source ./bin/auto-complete
debug 命令:
debug array-literal
render-by-source.js array-literal
render-onthefly.js array-literal
注意:
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
San SSR
本仓库的 目的 是为 san 提供一个 SSR 代码框架和工具,以及内置了 JavaScript 的代码生成。
安装
san-ssr 需要 san 提供的模板字符串解析和 TypeScript 类型,因此对 san 的版本有依赖。你需要安装对应版本的 san 和 san-ssr。 san-ssr 支持的 san 版本声明在
peerDependencies里,因此只要能安装成功就能正确工作。一般的建议如下:npm i san@latest san-ssr@latest更多讨论请参考:baidu/san/issues/441
使用
SanProject 类 提供了你会用到的所有接口:
详细请参考 API 文档:SanProject,或 /demo 下的示例项目。
其他目标平台
san-ssr 提供了 San 组件的静态分析,提供了项目文件集合和 San 组件树,以及二者的对应关系。 具体的代码生成抽象为 Compiler 接口,目前有 JS 和 PHP 两个实现,其中 san-ssr-target-js 内置在本仓库中:
CLI 参数
--target参数用来选择目标代码,默认为js:编程接口也可以通过
SanProject#compile()的第二个参数来指定目标,第三个参数来指定传给 Compiler 实现的参数:指定非
js的目标时,san-ssr 会从 CWD 开始寻找san-ssr-target-${target}的包,因此需要作为 san-ssr 的 peer 来安装。例如:已知问题
贡献指南
开发起步
欢迎任何类型的 Issue、完整的 Pull Request、或者不完整的 Pull Request。可以按照下面的步骤开始开发:
npm install./bin/debug array-literal来查看 SSR 结果。输出包括:npm run e2e来查看其它样例是否仍然正常。npm run check来做最后的编码风格检查,和完整的测试。debug 进阶
准备步骤:
export PATH=$PATH:./bin到你的 Shell 配置里。source ./bin/auto-complete(如果你想自动补全 case 名字的话)。可以自定义 chpwd() 方法来实现。debug 命令:
debug array-literal来执行这个 case 的所有编译方式:render-by-source.js array-literal来跳过编译,直接执行 ssr.js 并 assert 结果。用于手改 ssr.js 调试。render-onthefly.js array-literal来把这个 case 编译到 render 函数并 SSR 和 assert 结果。注意:
./bin/debug array-literal