vue或react项目生产环境去掉console.log的操作


Posted in Javascript onSeptember 02, 2020

在开发环境写了很多console.log/info/debug,在生产环境需要去掉这些console。

如果手动删除未免也太累了,再说以后想再开发还得重新写console。

事实上webpack提供了删除console的插件,在vue-cli3里面是这样用的:

首先安装terser-webpack-plugin

npm install terser-webpack-plugin -D

然后在vue.config.js文件里写插件的配置:

module.exports = {
 configureWebpack: (config)=>{
 if(process.env.NODE_ENV === 'production'){
  config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true
 }
 }
}

2020.1.14补充:

上面的写法是直接修改webpack的配置,vue官方文档里说也可以返回一个将会被合并的对象,写法如下:

const TerserPlugin = require('terser-webpack-plugin')
module.exports = {
 configureWebpack: (config)=>{
 if(process.env.NODE_ENV === 'production'){
  // 返回一个将会被合并的对象
  return {
  optimization:{
  minimizer: [
 new TerserPlugin({
 sourceMap:false,
 terserOptions:{
  compress:{
  drop_console : true
  }
 }
 })
   ]
 }
 }
 }
 }
}

2020.4.22补充:

最近在做react项目的时候发现它的webpack的配置,也可以使用terser去掉console.log。

webpack.config.prod.js:

module.exports = {
 optimization:{
 minimizer: [
 new TerserPlugin({
  sourceMap:false,
 terserOptions:{
 compress:{
  drop_console : true
 }
 }
 })
 ]
 }
}

补充知识:vue中遇到数据更新但是页面没有更新的情况

今天在项目中遇到了一个需求,点击改变数据,之后在页面上立即看到更改后的数据。

vue或react项目生产环境去掉console.log的操作

首先,如上图的黄色按钮是通过v-for 循环产生的,data()里只有数据cards:[ … ],cards的值是通过调用后台接口拿到的。

data(){
 return {
 cards:[]
 }
}
<div v-for="card in cards" :key="card.id">
 <img src="xxx" />
 <div v-if="card.isShow" @click="cacelHandler(card)">
 <img src="xxxx" />
 </div>
</div>

这个头像下方的黄色按钮,是根据card.isShow的truthy 决定显示或不显示。

当我点击按钮的时候,把card.isShow 的值变为 false。

可是页面上的黄色按钮还在,并没有如我期望的那样消失。

通过查询资料得知,使用this.$forceUpdate()可以重新渲染组件,这样就可以得到想要的效果。

cacelHandler(card){
 card.isShow = false;
 this.$forceUpdate();
}

vue官方对$forceUpdate的解释是:

$forceUpdate可以迫使 Vue 实例重新渲染。它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

以上这篇vue或react项目生产环境去掉console.log的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
实现JavaScript中继承的三种方式
Oct 16 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
JavaScript中自定义事件用法分析
Dec 23 Javascript
js数组的操作指南
Dec 28 Javascript
js实现点击切换TAB标签实例
Aug 21 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
jquery validate表单验证插件
Sep 06 Javascript
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
AngularJS中下拉框的高级用法示例
Oct 11 Javascript
解决easyui日期时间框ie的兼容的问题
Mar 01 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
JS继承实现方法及优缺点详解
Sep 02 #Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
Sep 02 #Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
Sep 02 #Javascript
关于vue-cli3打包代码后白屏的解决方案
Sep 02 #Javascript
JavaScript事件循环及宏任务微任务原理解析
Sep 02 #Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 #Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 #Javascript
You might like
PHP学习笔记之一
2011/01/17 PHP
php设计模式 Factory(工厂模式)
2011/06/26 PHP
php微信开发接入
2016/08/27 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
react项目实践之webpack-dev-serve
2018/09/14 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
理解Python垃圾回收机制
2016/02/12 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
django 消息框架 message使用详解
2019/07/22 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
详解python中的index函数用法
2019/08/06 Python
python elasticsearch环境搭建详解
2019/09/02 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
python3 使用traceback定位异常实例
2020/03/09 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
Python修改DBF文件指定列
2020/12/19 Python
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
为女性购买传统的印度服装和婚纱:Kalkifashion
2019/07/22 全球购物
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
小学体育教学反思
2014/01/31 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
导游词开场白
2015/01/31 职场文书
升学宴家长答谢词
2015/09/29 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python