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 相关文章推荐
关于COOKIE个数与大小的问题
Jan 17 Javascript
深入分析js中的constructor和prototype
Apr 07 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
Nov 08 Javascript
jQuery Real Person验证码插件防止表单自动提交
Nov 06 Javascript
动态加载js文件简单示例
Apr 21 Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 Javascript
原生JS实现图片轮播与淡入效果的简单实例
Aug 21 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
Angular的模块化(代码分享)
Dec 26 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
微信小程序动态显示项目倒计时
Jun 20 Javascript
微信小程序基础教程之worker线程的使用方法
Jul 15 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
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
PDO::_construct讲解
2019/01/27 PHP
Javascript之文件操作
2007/03/07 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
Python创建日历实例
2014/08/21 Python
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
详解python基础之while循环及if判断
2017/08/24 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Python的log日志功能及设置方法
2019/07/11 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
比赛主持人开场白
2015/05/29 职场文书
休假证明书
2015/06/24 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python