收藏
回答

使用“跨分包 JS 代码引用”的语法,此require语法不能被webpack识别,如何解决?

分包异步化中的“跨分包 JS 代码引用”用法,是微信小程序重写了commonjs的require函数,语法也与通用的require语法不同,导致webpack无法解析微信小程序特殊的require函数(报错:Cannot statically analyse 'require(…, …)' in line 125),如何解决?(webpack支持解析的模块语法风格: ES6CommonJS 和 AMD,见 https://webpack.docschina.org/api/module-methods/

// 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}`)
})


回答关注问题邀请回答
收藏

4 个回答

登录 后发表内容