2.2 KiB
2.2 KiB
生产部署
本文档说明如何构建和运行生产环境的应用。
生产构建和运行
bun run build
./dist/alfred config.yaml
启动后:
| 地址 | 行为 |
|---|---|
| http://127.0.0.1:3000/ | 返回前端 SPA |
| http://127.0.0.1:3000/api/meta | 返回应用元信息 JSON |
构建流程
scripts/build.ts 执行三步流水线:
1. Vite build -> dist/web/(前端静态资源,含 code splitting)
2. Code generation -> .build/static-assets.ts + .build/migrations-data.ts + .build/server-entry.ts(含版本号字面量注入)
3. Bun compile -> dist/alfred(单可执行文件)
4. Cleanup -> 清理 .build/ 临时目录
- Vite 构建前端资源到 dist/web/,自动 code splitting(vendor-react、vendor-antd、vendor-chart)
- Code generation 扫描 dist/web/ 生成 static-assets.ts,读取 drizzle/*.sql 生成 migrations-data.ts,生成 server-entry.ts 串联入口
- migrations-data.ts 将 migration SQL 嵌入 binary,生产部署无需额外携带 migration 文件
- Bun compile 以 .build/server-entry.ts 为入口编译最终可执行文件
- .build/ 临时目录在构建完成后自动清理
运行时数据存储
- 应用使用 SQLite 存储数据,数据库文件位于
<dataDir>/alfred.db - 启动时自动应用 pending database migrations(无需手动迁移)
- 每次 migration 执行前自动备份现有数据库到
<dataDir>/backups/ - 数据库文件使用 WAL 模式,支持并发读写
产物
| 产物 | 用途 |
|---|---|
| dist/alfred | 生产可执行文件(含前端资源,单文件部署) |
| dist/web/ | Vite 构建的前端资源(构建中间产物) |
构建参数
| 环境变量 | 说明 |
|---|---|
| BUN_TARGET / BUILD_TARGET | 交叉编译目标平台(如 bun-linux-x64) |
清理
bun run clean
清理 dist/ 构建产物和 .build/ 临时文件。