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 相关文章推荐
JS代码格式化和语法着色V2
Oct 14 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
html dom节点操作(获取/修改/添加或删除)
Jan 23 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
详解JavaScript事件循环机制
Sep 07 Javascript
微信小程序实现九宫格抽奖
Apr 15 Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
Oct 29 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数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
2018/04/21 PHP
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
jQuery实现伸展与合拢panel的方法
2015/04/30 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
日本无添加化妆品:HABA
2016/08/18 全球购物
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
德尔福集团DELPHI的笔试题
2012/02/22 面试题
kfc实习自我鉴定
2013/12/14 职场文书
2016年区委书记抓基层党建工作公开承诺书
2016/03/25 职场文书
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript