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 new关键字的玄机 以及其它
Aug 25 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
javascript实现密码强度显示
Mar 18 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
Dec 03 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
Dec 08 Javascript
bootstrap按钮插件(Button)使用方法解析
Jan 13 Javascript
vue结合element-ui使用示例
Jan 24 Javascript
Javascript的this详解
Mar 23 Javascript
Vue 列表页带参数进详情页的操作(router-link)
Nov 13 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
基于文本的搜索
2006/10/09 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
零基础php编程好学吗
2019/10/11 PHP
arguments对象
2006/11/20 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
Python 文件操作的详解及实例
2017/09/18 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
python将list转为matrix的方法
2018/12/12 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
施工安全协议书
2013/12/11 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
初中语文教学研修日志
2015/11/13 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers