前言

  • 今天刚写完一个需求准备打包测试,眼看着进度快跑满了啪的一下给我来了一个错,如下图:

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_bundle

简单分析


  • ​Failed to minify the bundle​​​看了下大概的错讲的应该是压缩代码报错了,而​​Uglifyjs​​​确实也是​​webpack​​打包压缩的插件。
  • 看下一行,大概讲的是​​index.295edf21.js​​​文件的第​​264048​​行报的错。找到我们打出的包的文件夹

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_bundle_02

  • 使用​​nodepad++​​打开找到相应行数

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_js插件_03

  • 看出这里讲的是一个​​arrayMoveMutate​​​函数,回想一下今天好像装了一个​​array-move​​的包。既然是这里报的错,那么先手动将这个包移除重新打包,发现可以成功

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_bundle_04

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_数据_05

  • 打包成功了,但是当时使用这个包是为了解决数组内数据移动的操作所引入的一个包,为了解决这个问题手动将这个​​arrayMoveMutate​​​ ​​arrayMove​​函数复制到我们的工具函数内,直接使用,再次打包发现可以使用。

为什么?

  • 找到问题了,但是为什么会出现这个错呢,我们手动打开该模块,发现代码很简单就是我们上面复制的两个方法,但是问题是他的这个包是使用​​commonJs​​规范编写的

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_js插件_06

  • 查看该库的​​issues​​​发现作者也是这样回应的​​Leaking ES6 code to ES5 bundle​​​,这个模块针对​​nodejs​​​开发,浏览器中如果使用必须使用​​babel​​编译后进行使用。

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_bundle_07

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_js插件_08

Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错_数据_09