1. 程式人生 > 程式設計 >解決vue打包報錯Unexpected token: punc的問題

解決vue打包報錯Unexpected token: punc的問題

專案中有一個功能模組是使用Vue寫的,然後蛋疼的來了,寫Vue的同事走了,今天需要改,懵逼狀態啊,這是什麼?程式碼還沒看懂,就給我出了一個Exception。記錄一下,蛋疼歷程。

ERROR in static/js/app.33254a875dd731a0b538.js from UglifyJs

Unexpected token: punc (() [./src/mixin/mixin.js:6,8][static/js/app.33254a875dd731a0b538.js:13,19]

好看不?

各種百度啊,有人說,下載新的vue-cli,webpack專案,拷貝.babelrc檔案到原專案根目錄下

然後再百度,怎麼下載vue-cli,更刺激的來了,根本看不懂,一堆cmd,對於一個小白來說,簡直殘忍啊。

最後找到了一個大神的回覆,懶惰的我,當然選擇貼上複製嘞。

解決方案:

1.在工程目錄下新建.babelrc檔案,注意檔案型別選擇File就可以了

2.cv大法(懶人專用)

{
 "presets": [
 
  ["env",{
   "modules": false,"targets": {
    "browsers": ["> 1%","last 2 versions","not ie <= 8"]
   }
  }],"stage-2"
 ],"plugins": ["transform-runtime"],"env": {
  "test": {
   "presets": ["env","stage-2"],"plugins": ["istanbul"]
  }
 }
}

3.此時npm run build,ok了。

貼個完整的圖片:

解決vue打包報錯Unexpected token: punc的問題

補充知識:webpack 打包時,程式碼壓縮,刪除console與註釋

如下所示:

new webpack.optimize.UglifyJsPlugin({
      //刪除註釋
      output:{
        comments:false
      },//刪除console 和 debugger 刪除警告
      compress:{
        warnings:false,drop_debugger:true,drop_console:true
      }
    })

uglifyJsPlugin 用來對js檔案進行壓縮,減小js檔案的大小。其會拖慢webpack的編譯速度,建議開發環境時關閉,生產環境再將其開啟。

vue cli 3.0中,在vue.config.js中配置

configureWebpack:{
  optimization: {
   minimizer: [
    new UglifyJsPlugin({
     uglifyOptions: {
      // 刪除註釋
      output:{
       comments:false
      },// 刪除console debugger 刪除警告
      compress: {
       warnings: false,drop_console: true,//console
       drop_debugger: false,pure_funcs: ['console.log']//移除console
      }
     }
   })
  ]
  }
 }

執行出現報錯 UglifyJs

DefaultsError: warnings is not a supported option

降低版本(使用 "uglifyjs-webpack-plugin": "^1.1.1"),打包正常,效果達到

以上這篇解決vue打包報錯Unexpected token: punc的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。