樓主最新對已作項目進行打包優化,配置了打包環境下去除console.log語句插件---使用uglifyjs-webpack-plugin
具體代碼以下vue
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, }) ] ) }
而後打包發現報錯node
⠧ 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! thua@0.1.0 build: `vue-cli-service build --mode production` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the thua@0.1.0 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插件註釋掉便可成功打包。webpack
可是,樓主我一點都不樂意,憑啥不讓我用UglifyJsPlugin插件!es6
因而不求人的我開始上網查資料,搜索Unexpected token: keyword (const),搜索列表點第一個進去看,大體說是由於項目有的文件沒有es6轉es5,即還存在const變量名。web
????(黑人問號)。我特麼的,個人vue配置是自動用babel把es6轉es5的呀,搞錘子呢。正則表達式
因而腦洞回想一下,是否是哪裏有文件打包進去沒有用到babel???vue-cli
咦。。。。。。。是否是,。。那個。。。。node_modules下的依賴。。。。。npm
再仔細想一想,看看代碼,,,cao。。。。。有一個animejs(用於動效)、還有一個vue-particles (canvas用於登陸頁背景特效)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' ],
完美解決
開開心心下班回家~~~~~