fix(appbuild): 恢复 electron/build.js 的 'app' 分支做 post-processing

Phase 6 过度简化:把 cmd 的 appbuild 从 electron_operate app "$@" 改成纯
web_build prod,漏掉了 startBuild({id:'app'}) 里做的后处理:

  1. 生成 electron/public/config.js(window.systemInfo.apiUrl 等)
  2. 读 manifest.json 把 index.html 里 <!--style--> / <!--script--> 占位符
     替换为真实资源路径(vite manifest 模式,HTML 不自动注入)
  3. 拷贝 public/language/ 到 electron/public/language/

结果:裸 vite build 跑出来的 public/index.html 还是模板原型,dootask-app
同步过去之后 WebView 加载只能看见占位 HTML 或 404。

恢复方式:
- cmd: appbuild 回到 electron_operate app "$@",但提示词改为指向
  electron/public/ 而不是 resources/mobile(Phase 6 & 7 的 EEUI 清理保留)
- electron/build.js: 重新加回 argv 'app' 的 dispatch,调 startBuild
  (startBuild 内部的 data.id==='app' 分支里 EEUI 特有的逻辑仍然是
  Phase 6 删掉的状态,不会再碰 resources/mobile)

产物位置:electron/public/。用户同步到 dootask-app 的命令已更新到提示词。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
kuaifan 2026-04-19 03:33:37 +00:00
parent 4b34932468
commit 2239ea9f58
2 changed files with 22 additions and 6 deletions

13
cmd
View File

@ -833,13 +833,14 @@ case "$1" in
;; ;;
"appbuild"|"buildapp") "appbuild"|"buildapp")
shift 1 shift 1
# 移动端已迁移到独立仓库 dootask-appExpo + EAS Build # 移动端已迁移到独立仓库 dootask-appExpo + EAS Build但前端资源的
# 这里只负责把前端 Vue SPA 构建到 public/,实际打包在 dootask-app 仓库执行。 # post-processing生成 config.js、把 manifest 里的 css/js 注入 index.html、
web_build prod # 拷贝 language/)仍然走 electron/build.js 的 startBuild({id:'app'}) 分支。
# 产物在 electron/public/;实际移动端打包在 dootask-app 仓库执行。
electron_operate app "$@"
echo "" echo ""
echo "前端资源已构建至 public/" echo "前端资源已构建至 electron/public/"
echo "移动端打包请在 dootask-app 仓库使用 EAS Build" echo "同步到 dootask-appcp -r electron/public/* ~/wwwroot/dootask-app/assets/web/"
echo "本地同步cp -r public/* ~/workspaces/dootask-app/assets/web/"
;; ;;
"electron") "electron")
shift 1 shift 1

15
electron/build.js vendored
View File

@ -664,6 +664,21 @@ if (["dev"].includes(argv[2])) {
fs.writeFileSync(devloadCachePath, utils.formatUrl("localhost:" + env.parsed.APP_PORT), 'utf8'); fs.writeFileSync(devloadCachePath, utils.formatUrl("localhost:" + env.parsed.APP_PORT), 'utf8');
child_process.spawn("npx", ["vite", "--", "fromcmd", "electronDev"], {stdio: "inherit"}); child_process.spawn("npx", ["vite", "--", "fromcmd", "electronDev"], {stdio: "inherit"});
child_process.spawn("npm", ["run", "start-quiet"], {stdio: "inherit", cwd: "electron"}); child_process.spawn("npm", ["run", "start-quiet"], {stdio: "inherit", cwd: "electron"});
} else if (["app"].includes(argv[2])) {
// 编译前端页面给移动端 Appdootask-app 仓库消费 electron/public/ 目录)
startBuild({
name: 'App',
id: 'app',
platform: '',
url: 'http://public/',
configure: {
platform: '',
archs: [],
publish: false,
release: true,
notarize: false,
}
})
} else if (["release"].includes(argv[2])) { } else if (["release"].includes(argv[2])) {
// 通知官网发布完成GitHub Actions // 通知官网发布完成GitHub Actions
(async () => { (async () => {