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 相关文章推荐
ie支持function.bind()方法实现代码
Dec 27 Javascript
jquery禁用右键示例
Apr 28 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
Dec 31 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
Apr 06 Javascript
javascript字符串与数组转换汇总
May 26 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
Aug 03 Javascript
Vue.js学习示例分享
Feb 05 Javascript
Node连接mysql数据库方法介绍
Feb 07 Javascript
小程序自定义组件实现城市选择功能
Jul 18 Javascript
ES6基础之展开语法(Spread syntax)
Feb 21 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
Aug 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
js控制table合并具体实现
2014/02/20 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
微信小程序 自定义消息提示框
2017/08/06 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
2017/11/10 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
vue使用echarts图表的详细方法
2018/10/22 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
[01:08]DOTA2“血战之命”预告片
2017/08/12 DOTA
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python3实现磁盘空间监控
2018/06/21 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
2018/07/16 Python
python 自动批量打开网页的示例
2019/02/21 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
python Matplotlib模块的使用
2020/09/16 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
美国半成品食材配送服务商:Home Chef
2018/01/25 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
职业生涯规划设计步骤
2014/01/12 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
门面房租房协议书
2014/08/20 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
护士先进个人总结
2015/02/13 职场文书
个人先进事迹总结
2015/02/26 职场文书
乒乓球比赛通知
2015/04/27 职场文书
董事长新年致辞
2015/07/29 职场文书