You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用生产构建时出现Failed to minify the code报错如何解决?

React生产构建报错(minify asn1.js失败)问题分析与解决方案

报错核心原因

旧版本react-scripts(2.x及更早版本)自带的压缩工具不支持识别ES6+语法,而你项目依赖的asn1.js某版本更新后使用了箭头函数等ES6+特性,node_modules下的依赖默认不会被babel转译,因此生产构建执行压缩步骤时直接识别失败抛出错误。

可行解决方案

  • 方案1:锁定asn1.js的兼容版本
    强制将asn1.js降级到无ES6语法的兼容版本5.4.1即可解决问题:
    如果你使用yarn作为包管理工具,直接在package.json中添加resolutions字段:
    "resolutions": {
      "asn1.js": "5.4.1"
    }
    
    保存后重新安装依赖再执行构建即可。
    如果你使用npm作为包管理工具,先安装强制版本依赖工具:
    npm i npm-force-resolutions --save-dev
    
    之后在package.json的scripts字段中添加preinstall钩子,同时加上resolutions字段:
    "scripts": {
      "preinstall": "npx npm-force-resolutions",
      // 其余原有脚本保持不变
    },
    "resolutions": {
      "asn1.js": "5.4.1"
    }
    
    保存后重新安装依赖再构建即可。
  • 方案2:升级react-scripts到3.x及以上版本
    新版react-scripts已经支持转译node_modules中的ES6+语法,同时替换了兼容性更好的压缩工具,直接升级依赖即可:
    npm install react-scripts@latest --save
    
    升级完成后重新执行构建即可,如果你项目有自定义配置,升级前建议先确认配置兼容性。
  • 方案3:自定义babel配置转译asn1.js
    如果不想修改依赖版本也不想升级react-scripts,可以用react-app-rewired+customize-cra工具无需eject修改配置,将asn1.js加入babel的转译列表;也可以直接eject项目后修改babel配置,指定转译node_modules下的asn1.js文件即可。

内容的提问来源于stack exchange,提问作者Shubham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 21:57:02