解決: ERROR in xx from UglifyJs keyword «const»

ERROR UglifyJs keyword «const»

腳手架編譯配置在另外一個項目裏用的時候,報了這個錯,解決的時候走了些彎路,記錄一下。node

1.最容易搜到的解決方式(不推薦用)

{
        test: /\.js$/,
        loader: 'babel-loader',
        //exclude: /node_modules/,    //註釋後,會先進行es5轉換,而後打包壓縮 
  }

這樣改是有她的道理的,由於:UglifyJsPlugin不能壓縮es6代碼,項目中可能引用了某些es6的npm包。webpack

可是:極可能會引發一個新的錯誤 !!!git

TypeError: $export is not a function

這個錯誤怎麼解呢,若是去找解決方案,會找到這樣的答案es6

{
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/,    // 須要加上這一行
}

哈哈哈,驚不驚喜,意不意外。。。github

2.採用terser-webpack-plugin(推薦)

uglifyjs-webpack-plugin 使用的 uglify-es 已經再也不維護,取而代之的是一個名爲 terser 的分支。因此 webpack 官方放棄了使用 uglifyjs-webpack-plugin,建議使用 terser-webpack-plugin。web

地址:https://github.com/webpack-contrib/terser-webpack-pluginnpm

跟着文檔說明 替換就好了 很簡單。babel

心得建議

搗鼓腳手架之類的東西時,很容易遇到各類五花八門的報錯。
正確的解決動做應該是去 github 的 issue 下去搜,省時間。es5

相關文章
相關標籤/搜索