vue 解決uglifyjs-webpack-plugin打包出現報錯的問題
樓主最新對已做專案進行打包優化,配置了打包環境下去除console.log語句外掛---使用uglifyjs-webpack-plugin
具體程式碼如下
npm install uglifyjs-webpack-plugin -D const UglifyJsPlugin = require('uglifyjs-webpack-plugin') configureWebpack: config => { if (isProduction) { config.plugins = config.plugins.concat( [ new UglifyJsPlugin({ uglifyOptions: { compress: { warnings: false,drop_debugger: true,drop_console: true,},sourceMap: false,parallel: true,}) ] ) }
然後打包發現報錯
⠧ Building for production... ERROR Failed to compile with 1 errors 上午10:10:12 error assets/js/about.e1f1ea37.js from UglifyJs Unexpected token: keyword (const) [assets/js/about.e1f1ea37.js:13062,0] ERROR Build failed with errors. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] build: `vue-cli-service build --mode production` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /Users/chenya/.npm/_logs/2019-01-15T02_10_12_281Z-debug.log
把new UglifyJsPlugin外掛註釋掉即可成功打包。
但是,樓主我一點都不樂意,憑啥不讓我用UglifyJsPlugin外掛!
於是不求人的我開始上網查資料,搜尋Unexpected token: keyword (const),搜尋列表點第一個進去看,大致說是因為專案有的檔案沒有es6轉es5,即還存在const變數名。
????(黑人問號)。我的vue配置是自動用babel把es6轉es5的呀,搞錘子呢。
於是腦洞回想一下,是不是哪裡有檔案打包進去沒有用到babel???
咦。。。。。。。是不是,。。那個。。。。node_modules下的依賴。。。。。
再仔細想想,看看程式碼。。。。。有一個animejs(用於動效)、還有一個vue-particles (canvas用於登入頁背景特效)
找到問題了,下一步就是如何顯示的把node_modules下的依賴用babel 轉譯。
樓主用的vue-cli3腳手架,翻山越嶺的查詢vue-cli3的官方資料,終於找到你。。。。。
transpileDependencies
transpileDependencies Type: Array<string | RegExp> Default: []
預設情況下 babel-loader 會忽略所有 node_modules 中的檔案。如果你想要通過 Babel 顯式轉譯一個依賴,可以在這個選項中列出來。
還好我沒放棄~~~~
transpiledependencies引數接受一個數組,數組裡可以是字串也可以正則表示式。
附上樓主的配置
transpileDependencies: [ 'vue-particles','animejs' ],
完美解決~
開開心心下班回家~~~~~
2020年06月11日08:57:07 更新
樓主已棄用 uglifyjs-webpack-plugin 外掛啦。現在用的是 terser-webpack-plugin
以上這篇vue 解決uglifyjs-webpack-plugin打包出現報錯的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。