codecamp

MorJS 代码规范

  • 源代码:

    • 原则上使用 TypeScript 写源代码,并输出 .d.ts 类型申明文件,方便开发同学快速上手,MorJS 提供了多端组件库的脚手架,可以快速初始化项目,并利用 MorJS 进行多端产物输出。
  • 代码输出 ES5 版本:

    • 依赖库输出的版本需要为 ES5 的版本,原因是小程序构建的时候并不会对 node_modules 里面的代码进行 ES6 转 ES5,所以在不支持 ES6 的机型会直接报错
    • 如果采用的是 TypeScript,建议在 tsconfig.json 中把 importHelpers 设置成 true,来减少生成出来的代码体积。注:使用 MorJS 的项目,会建议装 tslib 这个依赖
  • babel 的特别说明:

    • 同样,原则上如果没有特别的需要建议直接用 TypeScripttsc 即可
    • babel 默认情况下针对 async/await 的语法会使用 regenerator-runtime 这个库做 polyfill,而这个库默认情况下是不会声明这个 regeneratorRuntime 变量,因此会在严格模式下报错 Can't find variable: regeneratorRuntime,而库的兜底策略是会采用动态函数赋值(参考 源代码),而动态函数在小程序上由于安全问题不允许执行。所以导致在小程序上会直接报错。
    • 目前 mor bundle 模式针对该问题已经做了兼容兜底
  • 单元测试:

    • 单元测试建议采用 Jest,具体使用上请参考 Jest 官网
    • 建议测试覆盖率达到 90% 以上,Jest 可直接输出代码覆盖率报告
MorJS TypeScript 的 Polyfill 支持
MorJS 的加载规范
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

MorJS 指南

MorJS 基础用法

MorJS 配置

MorJS 编译相关配置

MorJS 进阶用法

MorJS Web开发

MorJS Web开发介绍

MorJS Web开发快速上手

MorJS Tabbar IOS 小黑条适配开关

MorJS 社区

MorJS 规范

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }