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 相关文章推荐
JQuery实现点击div以外的位置隐藏该div窗口
Sep 13 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
在JavaScript中操作时间之getMonth()方法的使用
Jun 10 Javascript
js实现div拖动动画运行轨迹效果代码分享
Aug 27 Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 Javascript
在web中js实现类似excel的表格控件
Sep 01 Javascript
JavaScript正则获取地址栏中参数的方法
Mar 02 Javascript
JS对象与json字符串相互转换实现方法示例
Jun 14 Javascript
Vue瀑布流插件的使用示例
Sep 19 Javascript
js blob类型url的视频下载问题的解决
Nov 29 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
Feb 01 Javascript
详解node和ES6的模块导出与导入
Feb 19 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实现留言板功能
2017/03/05 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
用pywin32实现windows模拟鼠标及键盘动作
2014/04/22 Python
Python类的多重继承问题深入分析
2014/11/09 Python
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python实现网页截图(PyQT5)过程解析
2019/08/12 Python
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
体育教育专业毕业生自荐信
2013/11/15 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
三年大学生活自我鉴定
2014/01/21 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android