【性能优化】Terser压缩js代码
代码
// 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。
洗尽铅华始见金,褪去浮华归本真
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2023-01-24 【vite】配置环境变量学习