最近在使用webpack打包过程中遇到element-ui报错。
说明一下情况:之前在原有的配置文件和node_modules依赖包下打包的过程中,一直都很顺利,但是突然就报错了,很尴尬啊!
1 ERROR in static/js/vendor.dcbf487ca944c251aced.js from UglifyJs 2 Unexpected token name «i», expected punc «;» [./~/element-ui/src/utils/merge.js:2,0][static/js/vendor.dcbf487ca944c251aced.js:1 3 3797,11] 4 ERROR in static/js/vendor.dbb0faab5871a21a588d.js from UglifyJs 5 Unexpected token: name (hiddenTextarea) [./~/element-ui/packages/input/src/calcTextareaHeight.js:1,0][static/js/vendor.dbb0faab 6 5871a21a588d.js:61851,4]
package.json文件下安装的element-ui的版本是:
"element-ui": "^2.0.5",
对应的node_modules下的element-ui文件夹是:
出现这样的情况是element-ui组件的js使用的是ES6的语法,打包的时候无法解析,导致UglifyJs报错。
解决方法是:
在webpack.base.conf.js里面进行如下配置:
1 { 2 test: /.js$/, 3 loader: 'babel-loader', 4 include: [resolve('src'), resolve('test'),resolve('/node_modules/element-ui/src'),resolve('/node_modules/element-ui/packages')] 5 }
或:
1 { 2 test: /.js$/, 3 loader: 'babel-loader', 4 exlude:/node_modules/, 5 include: [resolve('src'), resolve('test')] 6 }
注意文件路径的对应关系!