Vue Cli3 打包配置并自动忽略console.log语句的方法


Posted in Javascript onApril 23, 2020

下载插件

npm i -D uglifyjs-webpack-plugin

在 vue.config.js 引入使用

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
module.exports = {
 configureWebpack: {
  plugins: [
   new UglifyJsPlugin({
    uglifyOptions: {
     compress: {
      drop_console: true,
     },
    },
   }),
  ],
 },
 devServer: {
  proxy: {
   '/xxx': {
    target: 'http://192.168.150.17:8080/',
    changeOrigin: true,
    ws: true,
    pathRewrite: {
     '^/xxx': 'xxx',
    },
   },
  },
 },
 publicPath: './',
}

这时执行 npm run build 打包后的文件就没有 console.log 语句了。

不过这时会有一个问题,就是在开发环境的时候编译会非常慢。例如修改了一个变量的值,我的电脑要编译 10 秒才能重新刷出来页面,一直卡在 92% chunk asset optimization

由于去掉 console.log 语句这个功能只有在打包时才需要,所以我们可以加一个判断,只在生产环境时才把上述配置代码加上。

所以正确的配置如下:

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

const config = {
 devServer: {
  proxy: {
   '/xxx': {
    target: 'http://192.168.150.17:8080/',
    changeOrigin: true,
    ws: true,
    pathRewrite: {
     '^/xxx': 'xxx',
    },
   },
  },
 },
 publicPath: './',
}

if (process.env.NODE_ENV === 'production') {
 config.configureWebpack = {
  plugins: [
   new UglifyJsPlugin({
    uglifyOptions: {
     compress: {
      drop_console: true,
     },
    },
   }),
  ],
 }
}

module.exports = config

vue-cli3.0 生产包去除console.log

不安装插件去除console.log的方法

vue-cli3.0在打包过程中就使用了terser-webpack-plugin插件进行优化,具体配置可以node_modules/@vue/cli-service/lib/config/prod.js中看到。

这里使用了环境变量进行控制,只有打生产包的时候才会调用这个插件进行打包优化。

terser-webpack-plugin的具体配置在同一个文件夹下terserOptions.js中,只要在这个文件中compress对象中加入以下几个属性就可以了

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

到此这篇关于Vue Cli3 打包配置并自动忽略console.log语句的方法的文章就介绍到这了,更多相关Vue Cli3打包并忽略console.log内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript入门教程(10) 认识其他对象
Jan 31 Javascript
ExtJS 入门
Oct 29 Javascript
三种检测iPhone/iPad设备方向的方法
Apr 23 Javascript
Javascript Memoizer浅析
Oct 16 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
ajax异步请求详解
Jan 06 Javascript
详解Angular操作cookies方法
Jun 01 Javascript
使用layui 渲染table数据表格的实例代码
Aug 19 Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 Javascript
vue移动端屏幕适配详解
Apr 30 Javascript
Electron实现应用打包、自动升级过程解析
Jul 07 Javascript
vue使用echarts图表自适应的几种解决方案
Dec 04 Vue.js
vue项目打包之开发环境和部署环境的实现
Apr 23 #Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 #Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
Apr 22 #Javascript
如何修改Vue打包后文件的接口地址配置的方法
Apr 22 #Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 #Javascript
JS脚本实现定时到网站上签到/签退功能
Apr 22 #Javascript
微信小程序实现手指拖动选项排序
Apr 22 #Javascript
You might like
php array_intersect()函数使用代码
2009/01/14 PHP
PHP常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php计算税后工资的方法
2015/07/28 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
JS 统计时间
2021/03/09 Javascript
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
javascript下使用Promise封装FileReader
2016/02/19 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
JavaScript实现三级联动效果
2017/07/15 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
Python File readlines() 使用方法
2018/03/19 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
python监控文件并且发送告警邮件
2018/06/21 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
服装公司总经理岗位职责
2013/11/30 职场文书
一年级学生期末评语
2014/04/21 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
公司离职证明标准样本
2014/10/05 职场文书
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
JS封装cavans多种滤镜组件
2022/02/15 Javascript
SQL SERVER触发器详解
2022/02/24 SQL Server