codecamp

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 模块规范


MorJS 可兼容多端的 JS
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; }