最近在使用webpack打包過程當中遇到element-ui報錯。node
說明一下狀況:以前在原有的配置文件和node_modules依賴包下打包的過程當中,一直都很順利,可是忽然就報錯了,很尷尬啊!webpack
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的版本是:web
"element-ui": "^2.0.5",
對應的node_modules下的element-ui文件夾是:element-ui
出現這樣的狀況是element-ui組件的js使用的是ES6的語法,打包的時候沒法解析,致使UglifyJs報錯。json
解決方法是:babel
在webpack.base.conf.js裏面進行以下配置:ui
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 }
或:spa
1 { 2 test: /\.js$/, 3 loader: 'babel-loader', 4 exlude:/node_modules/, 5 include: [resolve('src'), resolve('test')] 6 }
注意文件路徑的對應關係!3d