运行npm run build报Can't resolve '@babel/runtime/helpers/esm/objectSpread2'如何解决
问题解决方法
该报错的核心原因是你使用的react-scripts@2.0.0版本过低,内置的Babel编译规则不识别新版依赖(比如你用的@mui/icons-material v5等)调用的@babel/runtime ESM格式辅助函数路径,你可以按以下优先级尝试解决方案:
方案1:升级react-scripts(最推荐,兼容性最好)
- 先卸载旧版本react-scripts:
npm uninstall react-scripts - 安装最新稳定版react-scripts:
npm install react-scripts@5.0.1 --save - 删除项目根目录下的
node_modules文件夹、package-lock.json文件 - 重新安装依赖:
npm install - 执行构建命令测试:
npm run build
方案2:调整@babel/runtime的依赖位置(不想升级react-scripts时可尝试)
当前你把@babel/runtime放在了devDependencies,但它的辅助函数是代码运行时需要调用的,需要移到生产依赖:
- 先卸载已装的@babel/runtime:
npm uninstall @babel/runtime - 重新安装到生产依赖:
npm install @babel/runtime@7.15.4 --save - 清理缓存并重装依赖:
npm cache clean --force && rm -rf node_modules package-lock.json && npm install - 再次执行
npm run build
方案3:添加依赖覆盖规则(前两个方案无效时使用)
如果前两个方案都不生效,在你的package.json中添加overrides字段(npm v8.3+支持)强制所有依赖统一调用你安装的@babel/runtime版本:
在package.json中新增配置:
"overrides": { "@babel/runtime": "^7.15.4" }
添加后重新执行npm install再构建即可。
内容的提问来源于stack exchange,提问作者Rahul Raj N
相关产品推荐
相关产品推荐

