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 关闭IE6、IE7
Jun 01 Javascript
Javascript 中文字符串处理额外注意事项
Nov 15 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
Oct 16 Javascript
node.js中的url.parse方法使用说明
Dec 10 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
vuejs2.0实现一个简单的分页示例
Feb 22 Javascript
JS实现页面打印功能
Mar 16 Javascript
vue省市区三联动下拉选择组件的实现
Apr 28 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
element-ui上传一张图片后隐藏上传按钮功能
May 22 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 Javascript
JavaScript 去重和重复次数统计
Mar 31 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
Terran热键控制
2020/03/14 星际争霸
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
深入理解python函数递归和生成器
2016/06/06 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
itchat接口使用示例
2017/10/23 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python 中的列表生成式、生成器表达式、模块导入
2019/06/19 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
毕业生个人求职的自我评价
2013/10/28 职场文书
高二化学教学反思
2014/01/30 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
党员干部承诺书范文
2014/03/25 职场文书
供货协议书
2014/04/22 职场文书
新郎接新娘保证书
2015/05/08 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis