最近在使用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 }
注意文件路徑的對應關系!