Files
lucky_shop/vue.config.js
2025-12-29 15:54:00 +08:00

45 lines
2.2 KiB
JavaScript

module.exports = {
productionSourceMap: false,
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
config.optimization.minimizer[0].options.terserOptions = {
compress: {
drop_console: true, // 去除所有console语句
drop_debugger: true, // 去除debugger语句
dead_code: true, // 移除死代码
unused: true, // 移除未使用的变量
toplevel: true, // 清理顶层作用域未使用的变量
passes: 3, // 大幅增加压缩次数
reduce_funcs: true, // 合并或移除未使用的函数
collapse_vars: true, // 折叠定义后不再修改的变量
sequences: true, // 合并连续的变量声明
evaluate: true, // 提前计算常量表达式
unsafe: true, // 已压缩代码启用更激进的压缩策略
unsafe_comps: true, // 优化比较操作
reduce_vars: true, // 合并或移除变量
join_vars: true, // 合并变量声明
side_effects: false, // 假设函数调用没有副作用
pure_funcs: ['console.log', 'console.warn', 'console.error', 'console.info', 'console.debug'], // 标记这些函数为纯函数,可以安全移除
pure_getters: true, // 假设getter函数没有副作用
unsafe_math: true, // 允许不安全的数学优化
unsafe_proto: true, // 允许不安全的原型优化
unsafe_regexp: true, // 允许不安全的正则表达式优化
conditionals: true, // 优化条件表达式
comparisons: true, // 优化比较操作
booleans: true, // 优化布尔表达式
typeofs: true // 优化typeof操作
},
format: {
ascii_only: true, // 确保输出ASCII字符
comments: false, // 去除所有注释
beautify: false // 不美化输出
},
// 为已压缩代码启用更严格的处理
parse: {
bare_returns: true, // 允许顶级return语句
expression: false // 禁用表达式模式
}
};
}
}
};