vue.config.js build打包UglifyJsPlugin清除控制台打印console.log,报错出现`warnings` is not a supported option

news/2024/7/9 23:38:53 标签: webpack, vue.config.js, UglifyJsPlugin, vue

前端在开发过程中,为了调试方便经常会用到console.log开发、测试环境有打印可以,但是生产环境最好不要有,毕竟不友好、也不太美观

webpackplugin_2">uglifyjs-webpack-plugin

上线到生产环境,我们希望把打印功能全部注销掉,一个个的去注销肯定不现实。既浪费精力,又浪费时间,而且还会有遗漏

这里我们借助 uglifyjs-webpack-plugin去实现

安装

cnpm i uglifyjs-webpack-plugin --save-dev

vueconfigjs_12">vue.config.js>vue.config.js引用

// vue.config.js>vue.config.js

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
...
configureWebpack: config => {
    if (process.env.NODE_ENV == 'production') {
    
      config.mode = 'production'
      config.optimization.minimizer = [
        new UglifyJsPlugin({
          uglifyOptions: {
            // 删除注释
			output: {
				comments: false
			},
			// 删除console debugger 删除警告
			compress: {     
				warnings: false,	//	报错的写法  
				drop_console: true, // console
				drop_debugger: false,
				pure_funcs: ['console.log']// 移除console
			}
          }
        })
      ]
    } else {
      // 为开发环境修改配置...
      config.mode = 'development'
    }
   }


...

}

warnings is not a supported option

这里有个知识点,warnings 会出现报错的情况。

有的 UglifyJsPlugin 版本不支持在 uglifyOptions 对象的 compress 中设置 warnings 参数, 而是将 warnings 作为一个属性直接设置在 uglifyOptions 对象中。

如果出现报错。那就按下面的写法,将warnings当做uglifyOptions属性去写就可以了

// vue.config.js>vue.config.js

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
...
configureWebpack: config => {
    if (process.env.NODE_ENV == 'production') {
    
      config.mode = 'production'
      config.optimization.minimizer = [
        new UglifyJsPlugin({
          uglifyOptions: {
            // 删除注释
			output: {
				comments: false
			},
			// 删除console debugger 删除警告
			compress: {     
				drop_console: true, // console
				drop_debugger: false,
				pure_funcs: ['console.log']// 移除console
			}, 
			warnings: false,	//	这样写就不报错  
          }
        })
      ]
    } else {
      // 为开发环境修改配置...
      config.mode = 'development'
    }
   }


...

}


http://www.niftyadmin.cn/n/1558069.html

相关文章

php连接sql server 2008失败报错This extension requires the Microsoft SQL Server 2012...

2019独角兽企业重金招聘Python工程师标准>>> php连接sql server 2008失败 This extension requires the Microsoft SQL Server 2012 今天在使用php链接sql server 2008的时候,报错,具体报错如下: This extension requires the Mi…

百度地图--3D棱柱效果---省边界数据抽取---Boundary、Point、Prism

3D棱柱效果 上代码 var map new BMapGL.Map("allmap");var point new BMapGL.Point(116.404, 39.925);map.centerAndZoom(point, 10);map.setTilt(50);map.enableScrollWheelZoom();var bd new BMapGL.Boundary();bd.get(北京市, function (rs) {var count rs.bo…

SpringBoot + Spring Batch

2019独角兽企业重金招聘Python工程师标准>>> 前言: 日常开发中,业务系统会有定期扫描大量数据,并对数据进行处理后入库、或着短信通知用户。比如用户在云平台上购买了服务,在服务到期前、到期后短信通知用户&#xff0…

vue+element 自定义主题

element ui 相信大家都很熟悉了,好多小伙伴估计也是在开发后台管理系统时认识的它。 当我们对它越来越熟悉的时候,便不在仅仅满足它提供的主题样式。那么如何自定义样式呢? 新建element-variables.scss Element 的 theme-chalk 使用 SCSS …

Spring Boot实践--集成Mybatis和多数据源配置

2019独角兽企业重金招聘Python工程师标准>>> Spring Boot实践--集成Mybatis和多数据源配置 DataBaseConfiguration.java用来获取数据库连接配置信息,配置从application.properties中读取 DataBaseConfiguration.java import java.util.ArrayList; import…

使用递归倒序输出字符串

在之前做的一个进制转换里&#xff0c;想用一个倒序输出&#xff0c;忽然想到了递归&#xff0c;然后发现是很OK的。这里贴出一般的代码&#xff08;之前那个是输入字符串加一个下标&#xff09; #include<stdio.h> void print(char* str); int main(void) {char str[100…

vue 对接钉钉开发平台:免登、退出、直接关闭浏览器

微信公众号 &#xff1a;h5获取code&#xff0c;授权等问题 我们能想到的免登有哪些&#xff1a;微信公众号、小程序(微信、钉钉、支付宝…) 那么如何实现一个免登功能&#xff0c;需要注意哪些呢&#xff1f; 这里以钉钉为例&#xff1a;钉钉开发文档 首先判断环境 h5可以…

css 自动补齐前缀(内核)

前端再开发项目中&#xff0c;使用的css可能在某些设备、浏览器上无法正常显示&#xff0c;因此想兼容不同厂商浏览器&#xff0c;就需要给一些比较新的属性添加厂商前缀来兼容。 那么在开发的过程中&#xff0c;那么多的样式&#xff0c;一个个的去添加肯定不合理&#xff0c…