UglifyJS webpack 插件抛出:意外的令牌:名称(功能)
UglifyJS webpack plugin throws: Unexpected token: name (features)
我曾经遇到过 UglifyJS for Webpack 和 ES6 模块的问题:
ERROR in static/js/vendor.6ccd9e38979a78765c7a.js from UglifyJs
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
}
}),
然而,现在我又收到另一个错误:
ERROR in static/js/vendor.6ccd9e38979a78765c7a.js from UglifyJs
Unexpected token: name (features)
[static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]
可能是什么问题?
您可以尝试安装 babel-preset-env
并将 presets": [ "env" ]
添加到您的 webpack.config.js 或 babelrc
。
Uglify 无法自行解析 ES6(据我所知),因此您需要将代码转换为 ES5,post- 使用 babel 处理生成的 JS,或使用不同的压缩器。我的建议是 Babelify,我在使用 Uglify 经常出错后切换到它。
编辑:问题可能出在您的 new webpack.optimize.UglifyJsPlugin
声明中,在 Webpack 3+ 中使用此声明存在问题。您需要导入 uglifyjs-webpack-plugin
并将插件声明更改为 new UglifyJSPlugin
(示例)。这里有一个reference。
示例:
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
const config = {
...
plugins: [
new UglifyJSPlugin({ uglifyOptions: { ...options } })
]
}
我曾经遇到过 UglifyJS for Webpack 和 ES6 模块的问题:
ERROR in static/js/vendor.6ccd9e38979a78765c7a.js from UglifyJs 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
}
}),
然而,现在我又收到另一个错误:
ERROR in static/js/vendor.6ccd9e38979a78765c7a.js from UglifyJs Unexpected token: name (features) [static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]
可能是什么问题?
您可以尝试安装 babel-preset-env
并将 presets": [ "env" ]
添加到您的 webpack.config.js 或 babelrc
。
Uglify 无法自行解析 ES6(据我所知),因此您需要将代码转换为 ES5,post- 使用 babel 处理生成的 JS,或使用不同的压缩器。我的建议是 Babelify,我在使用 Uglify 经常出错后切换到它。
编辑:问题可能出在您的 new webpack.optimize.UglifyJsPlugin
声明中,在 Webpack 3+ 中使用此声明存在问题。您需要导入 uglifyjs-webpack-plugin
并将插件声明更改为 new UglifyJSPlugin
(示例)。这里有一个reference。
示例:
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
const config = {
...
plugins: [
new UglifyJSPlugin({ uglifyOptions: { ...options } })
]
}