React引入Recharts组件后执行npm run-script build编译失败求助
解决React项目中Recharts构建时d3-array压缩失败的问题
我之前也碰到过一模一样的问题!这个错误本质是d3-array的代码语法和Create React App默认的压缩工具(Terser)不兼容,导致生产构建时无法正常压缩。这里有几个亲测有效的解决办法,你可以挨个尝试:
升级Create React App核心依赖
旧版本的react-scripts自带的Terser版本可能不支持d3-array里的新ES语法,直接升级到最新版大概率能解决问题:npm install react-scripts@latest升级完成后重新执行
npm run-script build试试。锁定d3-array的兼容版本
如果升级react-scripts无效,可能是Recharts依赖的d3-array版本太新。你可以手动指定一个兼容的旧版本:- 先安装强制版本锁定的工具:
npm install -D npm-force-resolutions - 在
package.json中添加以下配置:"resolutions": { "d3-array": "^2.12.1" } - 重新安装依赖:
npm install
这个版本的
d3-array和大多数CRA版本的压缩工具兼容性很好。- 先安装强制版本锁定的工具:
降级Recharts到稳定版本
如果你用的是Recharts的最新预览版或不稳定版本,可能引入了有问题的依赖。试试降级到经过验证的稳定版:npm install recharts@2.1.9我之前用这个版本配合CRA构建完全没有问题。
临时禁用压缩(仅用于调试)
如果你只是想快速验证代码逻辑是否正常,不想纠结版本问题,可以临时关闭构建时的压缩(不推荐生产环境使用):
修改package.json中的build命令:"scripts": { "build": "react-scripts build --no-minify" }执行
npm run-script build就能生成未压缩的生产包,但这个只是临时方案,生产环境还是要优先解决版本兼容问题。
我当时是通过升级react-scripts加上锁定d3-array版本解决的,你可以先从第一个方法开始试,应该能快速搞定。
内容的提问来源于stack exchange,提问作者wulala
相关产品推荐
相关产品推荐

