MorJS 正常情况下的多端规范示例
以一个需要适配 微信小程序、支付宝小程序 等模式的小程序的 JS 库举例:
业务项目中可以通过 import { xx } from 'example'
引用依赖,所有的模块均从根模块下导出。
目录结构
输出的目录结构示例
- 在支付宝小程序中会加载的是
lib/index.js
这份文件 - 在微信小程序中会加载的是
miniprogram_dist/index.js
这份文件
- src
- index.ts(源代码)
- lib
- index.js(输出的 ES5 版本代码,支付宝小程序加载用)
- index.d.ts(输出的类型申明)
- miniprogram_dist
- index.js(输出的 ES5 版本代码,微信小程序加载用)
- index.d.ts(输出的类型申明)
package.json
配置示例:
{
"main": "lib" // 支付宝小程序,缺省情况下使用 main 字段,也可以配置专属字段 alipay
"miniprogram": "miniprogram_dist" // 微信小程序
}
模块规范说明
- 微信小程序:微信小程序由于兼容性问题,建议输出的
module
规范是CommonJS
模块规范 - 支付宝小程序:由于支付宝小程序支持
node_modules
中使用ESNext
规范的模块,可以方便做tree shaking
,因此在多端版本输出的情况下,支付宝小程序版本建议输出的module
规范是ESNext
模块规范