ale*_*lex 4 javascript uglifyjs ecmascript-6 uglifyjs2 webpack
我曾经遇到过UglifyJS for Webpack和ES6模块的问题:
来自UglifyJs的static/js/vendor.6ccd9e38979a78765c7a.js中的错误Unexpected token:name(features)[./ node_modules/pica/lib/mathlib.js:19,0] [static/js/vendor.6ccd9e38979a78765c7a.js:39003, 6]
我读到Webpack插件的新测试版支持ES6:
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
}
}),
Run Code Online (Sandbox Code Playgroud)
但是,现在我又收到了另一个错误:
来自UglifyJs的static/js/vendor.6ccd9e38979a78765c7a.js中的错误Unexpected token:name(features)[static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]
可能是什么问题呢?
您可以尝试安装babel-preset-env并添加presets": [ "env" ]到webpack.config.js或babelrc.
Uglify无法自行解析ES6(据我所知),因此您需要将代码转换为ES5,使用babel对生成的JS进行后处理,或使用其他缩小器.我的推荐是Babelify,我在与Uglify一起出现错误后切换到了Babelify.
编辑:问题可能在您的new webpack.optimize.UglifyJsPlugin声明中,使用Webpack 3+的此声明存在问题.您需要将uglifyjs-webpack-plugin插件声明导入并更改为new UglifyJSPlugin(示例).这是一个参考.
例:
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
const config = {
...
plugins: [
new UglifyJSPlugin({ uglifyOptions: { ...options } })
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7472 次 |
| 最近记录: |