forked from imbytecat/fullstack-starter
19e60d358f
- 顶层新增 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 与部署规约
21 lines
728 B
TypeScript
21 lines
728 B
TypeScript
import { defineCommand, runMain } from 'citty'
|
|
import { name, version } from './package.json' with { type: 'json' }
|
|
|
|
// IMPORTANT: keep this file's static imports minimal. Nitro's bun preset
|
|
// emits `.output/server/index.mjs` with a top-level `serve(...)` call, so any
|
|
// eager (transitive) import of it would start the HTTP server even for
|
|
// `migrate` or `--help`. All subcommands are lazy-loaded via citty.
|
|
const main = defineCommand({
|
|
meta: {
|
|
name,
|
|
version,
|
|
description: 'Fullstack server binary (default subcommand: serve)',
|
|
},
|
|
subCommands: {
|
|
serve: () => import('./src/cli/serve').then((m) => m.default),
|
|
migrate: () => import('./src/cli/migrate').then((m) => m.default),
|
|
},
|
|
})
|
|
|
|
runMain(main)
|