我有2个Vue-Cli webpack项目(ClientApp和Lib)。 Lib是我的组件库(与其他项目共享)
当我构建项目ClientApp npm run build
时,出现以下错误:
ERROR in static/js/app.d08a24ce0e8d0438ce68.js from UglifyJs
Unexpected token: operator (>) [C:/.../Lib/src/tools/escape-key.js:3,0][static/js/app.d08a24ce0e8d0438ce68.js:17468,38]
似乎错误来自文件escape-key.js
中的箭头功能。
这是ES6语法,UglifyJS无法解析此问题。
在Uglify之前,Babel不应该先行吗?
请注意,这适用于*.vue
个文件。
ClientApp
| - build
| - config
| - src
| - App.Vue // import EscapeKey from '~lib/tools/escape-key';
Lib
| -src
| - tools
| - escape-key.js
注意Lib有一个别名。
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src'),
'~lib': path.join(__dirname, '../../lib/src'),
}
},
如果需要,请随时询问更多详细信息。
答案 0 :(得分:6)
添加
for KEY in "${!arr_list_people_name[@]}"; do
# Print the KEY value
echo "Key: $KEY"
# Print the VALUE attached to that KEY
echo "Value: ${arr_list_people_name[$KEY]}"
done
到您的dev依赖项并更新您的"uglifyjs-webpack-plugin": "v1.0.0-beta.1",
文件以明确使用此版本:
webpack.config.js
uglifyjs-webpack-plugin最新稳定版(v0.4.6)使用能够转换ES6的旧版const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
plugins: [
new UglifyJSPlugin()
]
}
而不是uglify-js
。此依赖关系已在1.0.0-beta.1版本中更新。
https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases/tag/v1.0.0-beta.1
答案 1 :(得分:5)
这解决了我的问题。
我安装了uglifyjs-webpack-plugin
npm install uglifyjs-webpack-plugin --save-dev
然后将其添加到我的webpack.config
const UglifyJSPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
plugins: [
new UglifyJSPlugin()
]
}
答案 2 :(得分:3)
您正在使用的uglify版本可能不支持ES6。
https://github.com/mishoo/UglifyJS2/tree/harmony是截至目前的es6版本
如果您想使用webpack plugin,请务必注意有关es6的安装部分
重要!该插件与uglify-js具有对等依赖关系,因此为了使用该插件,还必须安装uglify-js。该 目前(2017/1/25)可用uglify-js npm包;但是,做 不支持缩小ES6代码。为了支持ES6,一个 必须提供具有ES6能力,a.k.a。和谐版本的UglifyJS。
如果您的缩小目标是ES6:
yarn add git://github.com/mishoo/UglifyJS2#harmony-v2.8.22 --dev
答案 3 :(得分:2)
更改我的babel-loader配置后,它有效。
{
test: /\.js$/,
loader: 'babel-loader',
include: [path.join(__dirname, '../../Lib/src'), resolve('src'), resolve('test')]
}