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 相关文章推荐
JS模拟面向对象全解(一、类型及传递)
Jul 13 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
jQuery中animate动画第二次点击事件没反应
May 07 Javascript
JavaScript运动减速效果实例分析
Aug 04 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
第一次记录Bootstrap table学习笔记(1)
May 18 Javascript
vue axios用法教程详解
Jul 23 Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 16 Javascript
vue学习笔记之给组件绑定原生事件操作示例
Feb 27 Javascript
简介JavaScript错误处理机制
Aug 04 Javascript
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 引用是个坏习惯
2010/03/12 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP中substr函数字符串截取用法分析
2016/01/07 PHP
php桥接模式应用案例分析
2019/10/23 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
javascript的函数作用域
2014/11/12 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
vue的token刷新处理的方法
2018/07/17 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
2020/06/06 jQuery
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
python从Oracle读取数据生成图表
2020/10/14 Python
python 多线程中join()的作用
2020/10/29 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
中国旅游网站:同程旅游
2016/09/11 全球购物
自我评价的正确写法
2013/09/19 职场文书
教师现实表现材料
2014/02/14 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
民事答辩状格式范文
2015/05/21 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript