Webpack 4编译.mjs依赖报ReferenceError: module is not defined问题
解决graphql-tools依赖iterall导致的
ReferenceError: module is not defined错误 我之前也碰到过一模一样的问题!当在打包项目里引入graphql-tools的某个函数后,突然抛出了来自它的依赖iterall的ReferenceError: module is not defined错误。查了Webpack 4的编译输出,发现它处理iterall的.mjs文件时生成了这段有问题的代码:
__webpack_require__.r(__webpack_exports__); module.exports = __webpack_require__.p + "static/media/index.8485c181.mjs";
后来经过验证,这个问题的根源在于Webpack 4对.mjs文件的处理逻辑和iterall的模块导出方式不兼容,把iterall的依赖别名强制指向它的.js格式文件就能完美修复这个问题。
你只需要在Webpack配置文件里添加如下别名配置:
module.exports = { // ...其他项目配置 resolve: { alias: { iterall: 'iterall/index.js', }, }, };
这样Webpack就会优先使用iterall的CommonJS格式文件,避开.mjs文件带来的模块定义问题。
内容的提问来源于stack exchange,提问作者CheapSteaks
相关产品推荐
相关产品推荐

