如何修复next dev命令下的ESM导入错误?
Next.js
next dev 启动时ESM依赖导入错误问题 运行next dev时触发以下错误,根源是内部依赖库引用的@company/style-lib:
Module not found: ESM packages (@company/style-lib) need to be imported. Use 'import' to reference the package instead.
错误指向代码行:
var style_lib_1 = require("@company/style-lib");
该代码位于路径:
./node_modules/@company/another-component-library/node_modules/@company/utils-lib/lib/cjs/components/Component/Component.js:51:0
这是无法修改导入/导出逻辑的深层嵌套依赖。异常点在于:相同项目在其他同事本地可正常运行,我自己的Windows机器曾正常运行,MacOS本地也长期正常,近期无重大项目配置变更却突然出现该问题。
已尝试的解决方案:
- 多次删除
node_modules、yarn.lock,清理npm缓存后重新安装,无效 - 在
next.config.js中添加如下配置,无效:experimental: { transpilePackages: ['@company/style-lib'], esmExternals: true, }, - 手动将所有
require语句替换为import,触发新错误:TypeError: (0 , _company__style_lib__WEBPACK_IMPORTED_MODULE_3__.styled) is not a function
补充信息:
@company/style-lib的package.json模块配置片段:{ "module": "dist/index.mjs", "type": "module", ... }- 主项目使用volta管理版本:
"volta": { "node": "16.13.1", "yarn": "1.22.17" }
请问还需提供哪些额外信息以排查解决该问题?
内容的提问来源于stack exchange,提问作者kbo
相关产品推荐
相关产品推荐

