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 Map List 遍历使用示例
Jul 10 Javascript
jquery 实现窗口的最大化不论什么情况
Sep 03 Javascript
jquery动态加载select下拉框示例代码
Dec 10 Javascript
javascript页面动态显示时间变化示例代码
Dec 18 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
Jan 26 Javascript
探索Vue.js component内容实现
Nov 03 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
Mar 08 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
js中自定义react数据验证组件实例详解
Oct 19 Javascript
JS 数组基本用法入门示例解析
Jan 16 Javascript
js验证密码强度解析
Mar 18 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
如何过滤高亮显示非法字符
2006/10/09 PHP
PHP 柱状图实现代码
2009/12/04 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
PHP使用curl模拟post上传及接收文件的方法
2016/03/04 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
jquery indexOf使用方法
2013/08/19 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
使用原生JS实现弹出层特效
2014/12/22 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
MVVM框架下实现分页功能示例
2018/06/14 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python将图片文件转换成base64编码的方法
2015/03/14 Python
用Python实现一个简单的多线程TCP服务器的教程
2015/05/05 Python
python书籍信息爬虫实例
2018/03/19 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
用python制作个视频下载器
2021/02/01 Python
触摸春天教学反思
2014/02/03 职场文书
年会搞笑主持词串词
2014/03/24 职场文书
竞聘演讲稿
2014/04/24 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
班主任工作实习计划
2015/01/16 职场文书
结婚典礼主持词
2015/06/29 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
2022/06/21 Python
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL