【性能优化】Terser压缩js代码

📚 webpack v5 terser插件 文档

代码

	// vue-cli是默认开启Terser的,webpack则需要手动开启
const TerserWebpackPlugin = require("terser-webpack-plugin");

module.exports = {
  // ...
  optimization: {
    minimize: true,
    minimizer: [
			new TerserWebpackPlugin({
				// test: /\.js(\?.*)?$/i, //用来匹配需要压缩的文件,默认所有js文件
				// include: /\/includes/, //匹配参与压缩的文件。
				// exclude: /\/excludes/, //匹配不需要压缩的文件
				cache: true, //降版本后添加
				sourceMap: false, //降版本后添加
				parallel: true, //使用多进程并发运行以提高构建速度。 并发运行的默认数量: os.cpus().length - 1 。
				extractComments: true, //是否将注释剥离到单独的文件中,默认值: true
				terserOptions: {
					ecma: undefined,
					warnings: false,
					parse: {},
					compress: {
						drop_console: true,
						drop_debugger: false,
						pure_funcs: ["console.log"] // 移除console
					}
				}
			})
    ],
  },
};

打包产物分析

以下仅为测试Terser压缩(不分包不使用gzip),大文件的压缩率看来在30%-50%之间。

  • 开启Terser压缩前,打包产物体积为 79.1 M。
    • 入口文件 app.js 6391 kb。
    • 最大依赖 monaco-editor 4173 kb。
  • 开启Terser压缩后,打包产物体积为 60.0 M。
    • 入口文件 app.js 2953 kb。
    • 最大依赖 monaco-editor 1555 kb。
posted @   wanglei1900  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2023-01-24 【vite】配置环境变量学习
点击右上角即可分享
微信分享提示