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

2020-06-24 17:11:38 浏览数 (1)

前言

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

简单分析

  • Failed to minify the bundle看了下大概的错讲的应该是压缩代码报错了,而Uglifyjs确实也是webpack打包压缩的插件。
  • 看下一行,大概讲的是index.295edf21.js文件的第264048行报的错。找到我们打出的包的文件夹
  • 使用nodepad 打开找到相应行数
  • 看出这里讲的是一个arrayMoveMutate函数,回想一下今天好像装了一个array-move的包。既然是这里报的错,那么先手动将这个包移除重新打包,发现可以成功
  • 打包成功了,但是当时使用这个包是为了解决数组内数据移动的操作所引入的一个包,为了解决这个问题手动将这个arrayMoveMutate arrayMove函数复制到我们的工具函数内,直接使用,再次打包发现可以使用。

为什么?

  • 找到问题了,但是为什么会出现这个错呢,我们手动打开该模块,发现代码很简单就是我们上面复制的两个方法,但是问题是他的这个包是使用commonJs规范编写的
  • 查看该库的issues发现作者也是这样回应的Leaking ES6 code to ES5 bundle,这个模块针对nodejs开发,浏览器中如果使用必须使用babel编译后进行使用。
  • 另外,这里还有一个讲Webpack的UglifyJS插件引发错误的讨论,
  • 我想这才是真正造成我们代码打包失败压缩失败的原因,这里还有一个关于Enable babel-preset-env for node_modules that target newer Node versions的讨论

补充

  • 文章首发于:Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错
  • module.exports与exports,export与export default之间的关系和区别

0 人点赞