收藏
回答

使用“跨分包 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}`)
})


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

3 个回答

  • pt
    pt
    03-24

    Taro不支持

    03-24
    有用
    回复
  • 菜价疯涨
    菜价疯涨
    发表于小程序端
    2023-10-05

    同问

    2023-10-05
    有用
    回复
  • 谢沛江
    谢沛江
    2023-09-01

    请问这个问题有解么,使用Taro时会遇到这种问题


    2023-09-01
    有用
    回复
登录 后发表内容