vue-cli 3.0 生產(chǎn)包去除console.log

使用uglifyjs-webpack-plugin來(lái)進(jìn)行壓縮優(yōu)化,但是遇到了Unexpected token: name ***的報(bào)錯(cuò),又是一番查詢(xún)之后,有說(shuō)這個(gè)插件不支持es6之后的語(yǔ)法,但是vue-cli3.0使用的是babel-preset-env,默認(rèn)的配置就包含了babel-preset-es2015

最后搜索發(fā)現(xiàn)vue-cli3.0在打包過(guò)程中就使用了terser-webpack-plugin插件進(jìn)行優(yōu)化,具體配置可以node_modules/@vue/cli-service/lib/config/prod.js中看到。

if (process.env.VUE_CLI_TEST) {
  webpackConfig.optimization.minimize(false)
} else {
  const TerserPlugin = require('terser-webpack-plugin')
  const terserOptions = require('./terserOptions')
  webpackConfig.optimization.minimizer([
    new TerserPlugin(terserOptions(options))
  ])
}

這里使用了環(huán)境變量進(jìn)行控制,只有打生產(chǎn)包的時(shí)候才會(huì)調(diào)用這個(gè)插件進(jìn)行打包優(yōu)化。

terser-webpack-plugin的具體配置在同一個(gè)文件夾下terserOptions.js中,只要在這個(gè)文件中compress對(duì)象加入

warnings: false,
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log']

推薦 在vue.config.js中 給

在 vue.config.js 中的 configureWebpack 選項(xiàng)提供一個(gè)對(duì)象會(huì)被 webpack-merge 合并入最終的 webpack 配置,因此vue-cli3構(gòu)建的項(xiàng)目中只需要修改terserOptions即可,vue.config.js配置如下:

configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      config.optimization.minimizer[0].options.terserOptions.compress.warnings = false
      config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
      config.optimization.minimizer[0].options.terserOptions.compress.drop_debugger = true
      config.optimization.minimizer[0].options.terserOptions.compress.pure_funcs = ['console.log']
    }
  }

這幾個(gè)屬性就可以了 出自https://www.cnblogs.com/KlllB/p/10682262.html

另外一種


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 寫(xiě)在開(kāi)頭 先說(shuō)說(shuō)為什么要寫(xiě)這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,446評(píng)論 4 31
  • 非常感謝胖哥的博客和掘金小冊(cè)的技術(shù)分享,希望大家去下面的鏈接去查看原文,他們寫(xiě)的非常好,都是多個(gè)項(xiàng)目經(jīng)驗(yàn)的總結(jié)!!...
    示十閱讀 2,378評(píng)論 0 2
  • 一、入坑初探 1. 設(shè)置項(xiàng)目為私有 我們只需要在package.json文件中配置,因?yàn)槭撬接许?xiàng)目不需要向外部暴露...
    zxhnext閱讀 2,156評(píng)論 0 15
  • babel官網(wǎng) babel 介紹 Babel 是一個(gè)通用的多用途 JavaScript 編譯器。通過(guò) Babel ...
    鋒享前端閱讀 1,931評(píng)論 0 10
  • 早上很開(kāi)心,少了一斤。哈哈 早上吃?xún)蓚€(gè)雞蛋,喝了純奶。實(shí)在不喜歡吃雞蛋,簡(jiǎn)直是捏著鼻子吃完了。中午吃了涼拌娃娃菜和...
    望飛雪閱讀 167評(píng)論 0 1

友情鏈接更多精彩內(nèi)容