背景:
之前 vue.config.js 顶层 IIFE 在任何 require 场景都会跑 fixSubpackageModuleNames
+ runSyncCheck, 不区分平台。导致 mp-weixin / h5 编译时也会修改 5 个
mp-harmony 子包的 .json5 文件, 污染 git status (虽然不是破坏性修改,
但用户看不到为什么改了这些文件)。
改动:
vue.config.js 顶层 IIFE 入口加平台判断:
if (process.env.UNI_PLATFORM !== 'mp-harmony') {
return; // 非鸿蒙场景直接跳过
}
UNI_PLATFORM === 'mp-harmony' 是 uniapp 编译器在编译鸿蒙时设置的环境变量,
HBuilderX 选 "发行 → 鸿蒙元服务" 会设此变量, 编译 mp-weixin / h5 时不会设。
顺便清理了一个 dead code 块:
if (... && __TEST_GATE_BLOCKED__) return;
搜索全文件, __TEST_GATE_BLOCKED__ 没有任何地方被设置, 这个判断永远不成立。
端到端验证 (3 个测试场景):
1. UNI_PLATFORM=mp-weixin → 修子包逻辑跳过, name 保持 ""
2. UNI_PLATFORM=mp-harmony → 修子包 + 跑 sync check, 5 个 name 恢复正确
3. UNI_PLATFORM 不设 (默认) → 修子包逻辑跳过, name 保持 ""
影响:
- HBuilderX "发行 → 鸿蒙元服务" 行为不变 (修复 + sync check 仍自动跑)
- HBuilderX "发行 → 微信小程序" / "运行 → H5" 行为更干净
(不会无意义改 mp-harmony 子包文件)
- 命令行 vue-cli-service build 同理, 避免 mp-weixin / h5 编译后
git status 出现误改提示
31 KiB
31 KiB