问题:
vue全家桶在项目中使用了vue-qrcode-directive组件用来生成二维码,开发过程中使用npm run dev 是没有报任何错的;到npm run build打包的时候报错:如ERROR in static/js/app.f1ecb9a5673e78cc442b.js from UglifyJs Unexpected token: operator (>) [./~/_vue-qrcode-directive@1.2.0@vue-qrcode-directive/index.js:4,0][static/js/app.f1ecb9a5673e78cc442b.js:17412,34]
分析原因:
weback默认的webpack.optimize.UglifyJsPlugin不能压缩es6的代码文件。顺着这个思路只要我们把es6的代码用babel转换成es5即可。
原因肯定还是在webpack.config.js上。经过反复观测发现。问题出现在了loader配置上,loader上有一项是配置js文件转换的。
解决办法:(同样的问题也出现在:_quill-image-drop-module,_vue-qrcode-directive)
module: {
rules: [
{
test: /\.js$/,
loader: "babel-loader",
include: [
resolve("src"),
resolve("test"),
resolve(
"node_modules/_quill-image-drop-module@1.0.3@quill-image-drop-module"
),
resolve(
"node_modules/_vue-qrcode-directive@1.2.0@vue-qrcode-directive"
)
],
}
]
}