/** * vext start — 生产模式启动命令(Phase 1) * * 启动流程: * 1. 解析用户项目根目录(默认 process.cwd()) * 2. detectProject() 检测项目结构(src/ / config/ / tsconfig.json) * 3. 检测 dist/ 编译产物是否存在 * 4. 解析实际入口文件路径(dist/ 优先,否则 node_modules/vextjs/dist/) * 5. fork 子进程运行 bootstrap.ts/bootstrap.js * 6. 转发 SIGTERM / SIGINT 给子进程(触发优雅关闭) * * dist/ 检测逻辑: * - TS 项目 + 有效 dist/ → 使用 node 运行编译后的 JS * - TS 项目 + 缺失/无效 dist/ → fail-fast,提示先 vext build * - JS 项目 → 使用 node 直接运行 * * 环境变量: * - VEXT_MODE=start — 告知 bootstrap.ts 是被 CLI fork 的(触发自执行入口) * - VEXT_ROOT= — 传递项目根目录给 bootstrap * - VEXT_BUILT=1 — 当使用 dist/ 编译产物时设置 * - NODE_ENV — 固定为 'production' * - VEXT_CONFIG — 配置 profile(默认 production,可由 --config/VEXT_CONFIG 覆盖) * * 命令行参数(Phase 1 基础版): * --port 覆盖配置中的端口 * --host 覆盖配置中的监听地址 * * @module cli/start * @see 09-cli.md §3(vext start 生产模式) * @see IMPLEMENTATION-PLAN.md 任务 1.18 */ interface StartOptions { /** 覆盖端口号 */ port?: number; /** 覆盖监听地址 */ host?: string; /** 配置 profile 名称 */ configProfile?: string; /** 生命周期日志增强 */ verboseLifecycle?: boolean; /** 端口冲突策略 */ portConflict?: "error" | "prompt" | "kill" | "next"; /** 输出启动阶段耗时 */ startupProfile?: boolean; /** 将启动阶段耗时写入 JSON 文件 */ startupProfileJson?: string; } /** * startCommand — vext start CLI 命令入口 * * 解析命令行参数,检测项目结构,fork 子进程运行 bootstrap。 * * @param args 命令行参数(如 ['--port', '8080']) */ export declare function startCommand(args?: string[]): Promise; /** * parseStartArgs — 解析 vext start 的命令行参数 * * 支持的参数: * --port 覆盖监听端口 * --host 覆盖监听地址 * * 使用手动解析(不引入第三方 CLI 库),保持零依赖。 * * @param args process.argv.slice(2) 的子集(已去除 'start' 命令本身) * @returns 解析后的选项 */ export declare function parseStartArgs(args: string[]): StartOptions; export {};