feat(cli): 引入 citty CLI,迁移改为显式 ./server migrate

- 顶层新增 bin.ts 作为编译入口,citty 懒加载 src/cli/ 下子命令
- src/cli/serve.ts 通过 _serve-nitro.mjs 桥接启动 Nitro(规避
  .output/server/index.mjs 顶层 serve(...) 的副作用导入)
- src/cli/migrate.ts 显式跑 drizzle migrate;env / drizzle 都在 run()
  里 await import,避免 citty --help 遍历 subCommands 时触发 env 校验
- compile.ts 入口切到 bin.ts;移除 src/server/plugins/migrate.ts
  与 vite.config.ts 中的启动时自动迁移
- compose.yaml 新增一次性 migrate 服务,app depends_on
  service_completed_successfully,保证迁移先行再起服
- tsconfig 排除 .output / out;AGENTS.md 补充 CLI 与部署规约
This commit is contained in:
2026-04-24 20:32:32 +08:00
parent 4518a63959
commit 19e60d358f
13 changed files with 121 additions and 26 deletions
+3
View File
@@ -16,6 +16,7 @@
"@tanstack/react-router": "^1.168.23",
"@tanstack/react-router-ssr-query": "^1.166.11",
"@tanstack/react-start": "^1.167.43",
"citty": "^0.2.2",
"drizzle-orm": "0.45.2",
"drizzle-zod": "^0.8.3",
"postgres": "^3.4.9",
@@ -406,6 +407,8 @@
"chokidar": ["chokidar@3.6.0", "", { "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw=="],
"citty": ["citty@0.2.2", "", {}, "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w=="],
"clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="],
"consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="],