在项目打包的时候,遇到了一个报错,回头询问的时候,组里也基本上都碰到了这个问题。 他们的解决办法很暴力,就是直接替换 node_modules 然而,做为一个前端程序员,这样的做法简直很简直! 所以专门针对这个问题给大家做个科普,后续遇到这个问题如何去解决。
首先。UglifyJS出现的原因是什么?很简单!找度娘啊!
度娘会直接告诉你,这个就是用来对js代码进行js 解释器、最小化器、压缩器、美化器的包。
那就问题出来了,也就是代码是在编译js的时候出现了问题。这时候我们需要去确认是哪个代码在这时候出的问题。
看报错↓
我们打开编译的dist文件夹,找到这个0.async.js文件,你们的有可能是index.js文件。 找到报错的363990行代码。
也就是这里出的问题。 都找到这里,还不知道是哪个包嘛,人家备注都告诉你了。
这里是这个包的编译地方。
也就是 jsencrypt 这个包出现了问题。
所以编译出现问题怎么办呢,我们使用 extraBabelIncludes 给他额定一下就好了。(因为项目用的是 roadhog)
此处要注意的是,至于包的名称叫不叫 jsencrypt,你得实际去看node_modules 下有没有这个包以及中间有没有什么下划线之类的。
配置好后,你再走一遍 npm build。 发现,美滋滋的可以喝咖啡去了~~~