MorJS 代码规范
-
源代码:
- 原则上使用
TypeScript写源代码,并输出.d.ts类型申明文件,方便开发同学快速上手,MorJS 提供了多端组件库的脚手架,可以快速初始化项目,并利用 MorJS 进行多端产物输出。
- 原则上使用
-
代码输出
ES5版本:- 依赖库输出的版本需要为
ES5的版本,原因是小程序构建的时候并不会对node_modules里面的代码进行 ES6 转 ES5,所以在不支持 ES6 的机型会直接报错 - 如果采用的是
TypeScript,建议在tsconfig.json中把importHelpers设置成true,来减少生成出来的代码体积。注:使用 MorJS 的项目,会建议装tslib这个依赖
- 依赖库输出的版本需要为
-
babel的特别说明:- 同样,原则上如果没有特别的需要建议直接用
TypeScript的tsc即可 babel默认情况下针对async/await的语法会使用 regenerator-runtime 这个库做 polyfill,而这个库默认情况下是不会声明这个regeneratorRuntime变量,因此会在严格模式下报错Can't find variable: regeneratorRuntime,而库的兜底策略是会采用动态函数赋值(参考 源代码),而动态函数在小程序上由于安全问题不允许执行。所以导致在小程序上会直接报错。- 目前
mor bundle模式针对该问题已经做了兼容兜底
- 同样,原则上如果没有特别的需要建议直接用
-
单元测试:
- 单元测试建议采用 Jest,具体使用上请参考 Jest 官网
- 建议测试覆盖率达到
90%以上,Jest 可直接输出代码覆盖率报告