微信小程序端,为了提交小程序打开速度,缩小主包体积。我在pages.json里配置 componentPlaceholder 节点,实现了跨分包自定义组件引用,但是相对应的跨分包 JS 代码引用,没有实现,微信文档地址:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/async.html。按文档所说,一个分包中的代码引用其它分包的代码时,为了不让下载阻塞代码运行,我们需要异步获取引用的结果
// subPackageA/index.js
// 使用回调函数风格的调用
require('../subPackageB/utils.js', utils => {
console.log(utils.whoami) // Wechat MiniProgram
}, ({mod, errMsg}) => {
console.error(`path: ${mod}, ${errMsg}`)
})
// 或者使用 Promise 风格的调用
require.async('../commonPackage/index.js').then(pkg => {
pkg.getPackageName() // 'common'
}).catch(({mod, errMsg}) => {
console.error(`path: ${mod}, ${errMsg}`)
})
编译的时候会报告错,Cannot statically analyse 'require(…, …)'