当我尝试为我的react应用程序运行build命令时,我看到这个错误,导致构建失败:
var stripAnsi = require('strip-ansi');
^
Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\rahul\Documents\project_name\node_modules\strip-ansi\index.js from C:\Users\rahul\Documents\cambian\cambian-widget-client\node_modules\react-dev-utils\FileSizeReporter.js not supported.
Instead change the require of index.js in C:\Users\rahul\Documents\project_name\node_modules\react-dev-utils\FileSizeReporter.js to a dynamic import() which is available in all CommonJS modules.
at Object.<anonymous> (C:\Users\rahul\Documents\project_name\node_modules\react-dev-utils\FileSizeReporter.js:15:17)
at Object.<anonymous> (C:\Users\rahul\Documents\project_name\node_modules\react-scripts\scripts\build.js:35:26) {
code: 'ERR_REQUIRE_ESM'
}
error Command failed with exit code 1.
字符串
但是当我删除锁文件并重新运行build命令时,它成功执行了。然后,新的构建再次失败,直到锁定文件被删除。
这是一个主要的问题,因为我们必须手动部署应用程序的每一次变化已经完成。
两周前这一直运行良好,我可以确认既没有添加新的软件包,也没有更新任何软件包
我试过什么?
- 升级节点,npm,yarn,但没有任何工作
- Yarn缓存清理
- Yarn审计固定力
使用的构建命令:第一个月
环境:
node: 16.19.0
npm: 9.8.1
yarn: 1.22.19
型
React packages版本
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-scripts": "^5.0.0",
型
1条答案
按热度按时间nuypyhwy1#
我找到的解决这个问题的唯一方法是在package.json中强制
strip-ansi
降低到6.0.0或6.0.1。它在7.0.0中成为纯ESM。大概是这样的:字符串
如果你使用
npm
而不是yarn
(我看到OP不是,但对其他人来说),那么使用覆盖:型