我曾经在使用 UglifyJS 的 Webpack 和 ES6 模块时遇到问题:
来自 UglifyJs 的 static/js/vendor.6ccd9e38979a78765c7a.js 中出现错误
意外标记:名称(功能)
[./node_modules/pica/lib/mathlib.js:19,0][static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]
我读到 Webpack 插件的新 beta 版本支持 ES6:
https://github.com/webpack-contrib/uglifyjs-webpack-plugin https://github.com/webpack-contrib/uglifyjs-webpack-plugin
new webpack.optimize.UglifyJsPlugin({
uglifyOptions: {
ie8: false,
ecma: 8, // I also tried 7 and 6
parse: {},
mangle: {
properties: {
// mangle property options
}
},
output: {
comments: false,
beautify: false
},
compress: {},
warnings: true
}
}),
但是,现在我收到另一个错误:
来自 UglifyJs 的 static/js/vendor.6ccd9e38979a78765c7a.js 中出现错误
意外标记:名称(功能)
[静态/js/vendor.6ccd9e38979a78765c7a.js:39003,6]
可能是什么问题呢?
您可以尝试安装babel-preset-env
并添加presets": [ "env" ]
到你的 webpack.config.js 或babelrc
.
Uglify 无法自行解析 ES6(据我所知),因此您需要将代码转译为 ES5,使用 babel 后处理生成的 JS,或者使用不同的压缩器。我的建议是Babelify https://github.com/babel/minify在 Uglify 不断出现错误后我切换到了它。
编辑:问题可能出在你的new webpack.optimize.UglifyJsPlugin
声明,在 Webpack 3+ 中使用此声明存在问题。您需要导入uglifyjs-webpack-plugin
并将插件声明更改为new UglifyJSPlugin
(例子)。这里有一个参考 https://webpack.js.org/plugins/uglifyjs-webpack-plugin/.
Example:
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
const config = {
...
plugins: [
new UglifyJSPlugin({ uglifyOptions: { ...options } })
]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)