如何在不压缩node_modules的情况下构建React项目并解决minify报错
方案2:修复压缩报错,正常构建
这个报错的根本原因是你使用的react-scripts@1.1.5版本过于老旧,内置的压缩工具不支持ES6+语法,而emailjs-com@3.x的代码未做ES5降级,压缩时无法识别对应语法。可以任选以下一种方式修复:
- 降级
emailjs-com到兼容ES5的版本:卸载现有版本后安装emailjs-com@2.6.4,该版本为全ES5编译产物,老版本打包工具可正常压缩 - 配置craco让babel转译
emailjs-com:在craco.config.js中添加以下规则,让babel处理该依赖的代码,转译为ES5后再压缩
module.exports = { babel: { loaderOptions: { exclude: /node_modules\/(?!(emailjs-com)\/).*/, }, } }
- 升级
react-scripts到v5及以上版本:如果项目改造成本不高,升级后内置的压缩工具原生支持新版JS语法,可直接解决该问题
小提示:你的依赖中同时安装了
emailjs和emailjs-com两个功能重叠的包,仅需邮件发送功能的话可以保留其中一个,减少依赖体积。
内容的提问来源于stack exchange,提问作者Augusto Accorsi
相关产品推荐
相关产品推荐

