当前位置: 首页 > news >正文

webpack优化系列六:vue项目配置 terser-webpack-plugin 压缩 JS,去除console

代码打包后,开发中写的很多打印信息或者断点,都会带上去,即影响美观,又影响性能,而生产大多不需要,故而需去除;
插件使用 terser 来压缩 JavaScript。我们项目主要用来去除生产环境中的console以及debugger等信息。
通过查阅后,经测试此方法可行,故记录,以便后续查看。

网站推荐:https://www.npmjs.com/package/terser-webpack-plugin

webpack其他相关给、推荐
一:webpack优化相关
1:webpack优化系列一:webpack不同环境打包配置
2:webpack优化系列二:Vue配置compression-webpack-plugin实现Gzip压缩
3:webpack优化系列三:vue子目录路径更改—publicPath
4:webpack优化系列四:vue打包后生成的chunk-vendors文件过大,利用SplitChunks插件,分离chunk
5:webpack优化系列五:vue项目配置 webpack-obfuscator 进行代码加密混淆

安装依赖

注意:版本需正确,否则报错

在这里插入图片描述

常见webpack安装版本

webpack4的安装方式
npm install terser-webpack-plugin --save-dev@4.2.3
webpack5的安装方式
npm install terser-webpack-plugin --save-dev

查看webpack应安装版本

查看网站

https://github.com/webpack-contrib/terser-webpack-plugin/tags

查看方式

terser-webpack-plugin git官网的tags的package.json上进行详细查看;

文件配置

配置项webpack.config.js

const TerserPlugin = require("terser-webpack-plugin")
minimizer: [
	new TerserPlugin({
		test: /\.js(\?.*)?$/i,
		parallel: true,
		extractComments: true,
		sourceMap: config.build.productionSourceMap,
		terserOptions: {
			output: {
				// 是否输出可读性较强的代码,即会保留空格和制表符,默认为输出,为了达到更好的压缩效果,可以设置为false
				beautify: false,
				// 是否保留代码中的注释,默认为保留,为了达到更好的压缩效果,可以设置为false
				comments: false
			},
			compress: {
				// 是否在UglifyJS删除没有用到的代码时输出警告信息,默认为输出,可以设置为false关闭这些作用不大的警告
				warnings: false,
				// 是否删除代码中所有的console语句,默认为不删除,开启后,会删除所有的console语句
				drop_console: true,
				drop_debugger: true,
				// 是否内嵌虽然已经定义了,但是只用到一次的变量,比如将 var x = 1; y = x, 转换成 y = 5, 默认为不转换,为了达到更好的压缩效果,可以设置为false
				collapse_vars: true,
				// 是否提取出现了多次但是没有定义成变量去引用的静态值,比如将 x = 'xxx'; y = 'xxx'  转换成var a = 'xxxx'; x = a; y = a; 默认为不转换,为了达到更好的压缩效果,可以设置为false
				reduce_vars: true,
				pure_funcs: ['console.log'] // 移除console
			}
		}
	}),
 ]

配置项vue.config.js

const TerserPlugin = require("terser-webpack-plugin")
module.exports = {
    //=>设置一些webpack配置项,用这些配置项和默认的配置项合并
    configureWebpack:{
        optimization: {
            minimizer: [
              new TerserPlugin({
                terserOptions:{
                  compress:{
                    warnings: false,
                    drop_console: true,
                    drop_debugger: true,
                    pure_funcs: ["console.log"]
                  }
                }
              })
            ],
          },
    }
}

相关文章:

  • 丘里奇网站排名/广州网络优化最早的公司
  • 网站关键词代码位置/技术培训机构
  • 提供网站建设服务的网站价格/aso应用商店优化原因
  • 郑州网站制作公司/详细的营销推广方案
  • 网站关键词多长/google网站登录入口
  • 电商网站后台管理系统/关键词举例
  • LVM管理磁盘
  • python地图库(一)—folium
  • [LeetCode周赛复盘] 第 315 场周赛20221016
  • 每天五分钟机器学习:基于正则化方法解决算法模型的过拟合问题
  • k8s证书过期
  • python数据分析及可视化(八)pandas数据规整(层级索引、数据重塑、数据合并、数据连接)
  • 文件损坏打不开怎么办?excel文件修复,看看这些解决办法
  • 如何保护Excel的工作簿结构不被改动?
  • 刷爆leetcode第七期 0018
  • JDBC2:preparedStatement的优点(blob数据和批处理)
  • 小程序开发 |微信公众平台SpringBoot开发实例 │ OAuth2.0网页授权应用开发
  • Python快速刷题网站——牛客网 数据分析篇(十五)