禁用压缩需按环境配置vue.config.js中optimization.minimize为false并清空minimizer;命令行可用--no-minimize;HBuilderX界面选项仅影响调试包,不影响正式构建。

可以直接禁用压缩,但必须区分环境、改对配置位置,否则 build 时仍会压缩。
vue.config.js 中禁用 minimize
uni-app 项目若使用 Vue CLI 构建(即有 vue.config.js),这是最可靠的方式。关键不是“关掉某个开关”,而是覆盖 Webpack 的 optimization.minimize 行为:
-
minimize: false必须显式设为false,不能只删掉配置项 - 要配合
minimizer: []清空默认压缩插件,否则某些版本仍会 fallback 到内置 Terser - 建议按环境判断:
process.env.NODE_ENV === 'development'时禁用,避免误关生产压缩
module.exports = {
configureWebpack: config => {
if (process.env.NODE_ENV === 'development') {
config.optimization = {
minimize: false,
minimizer: []
}
}
}
}命令行传参覆盖 --minimize
如果你没配 vue.config.js,或想临时绕过所有配置,直接用 CLI 参数最简单:
- 运行
npm run build:mp-weixin -- --no-minimize(注意双横线) - 或改
package.json脚本:"build-debug": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --no-minimize" - ⚠️ 不要用
--minimize=false,CLI 不识别布尔值写法,只认--no-minimize
HBuilderX 界面选项不控制最终打包
很多人在 HBuilderX 的「运行 → 运行到小程序模拟器」里勾选「运行时是否压缩代码」,但这只影响 dev-server 启动的调试包,不影响 npm run build:mp-weixin 或「发行」生成的正式产物:
- 该选项实际等价于启动一个未压缩的开发服务器,和最终 dist 目录无关
- 「发行」菜单走的是 uni-app 自研构建链,不读取这个 UI 设置
- manifest.json 里也没有任何字段能关闭代码压缩 —— 它压根不处理这层逻辑
真正容易被忽略的是:即使你禁用了 JS 压缩,chunk-vendors.js 等文件仍可能被 gzip 压缩(如果配了 compression-webpack-plugin)。这两者完全独立,别混淆「构建时 JS 压缩」和「构建后资源 gzip」。前者关 minimize,后者得去删 plugin 配置或关 test 正则。


















