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 可直接输出代码覆盖率报告