Files
hapi/package.json
T
weishu 1028547a3a feat(cli): add single executable with embedded web assets support
Implement support for bundling web assets into CLI single executable binaries.
When built with --with-web-assets, the executable includes the compiled web
application and serves it directly without file system access. A stub generator
creates empty manifests for normal builds to maintain compatibility.

Key changes:
- Add --with-web-assets flag to build-executable.ts with manifest validation
- Generate embeddedAssets.ts manifest from web/dist during build
- Serve embedded assets in web server with fallback to file system
- Add hapi server subcommand to start API + web server
- Include server sources in CLI tsconfig for compilation scope
- Add workspace-level build:single-exe scripts for production builds
2025-12-21 08:42:00 +08:00

29 lines
1.4 KiB
JSON

{
"name": "hapi",
"private": true,
"workspaces": ["cli", "server", "web"],
"scripts": {
"dev": "concurrently \"bun run dev:server\" \"bun run dev:web\" --kill-others-on-exit",
"build": "bun run build:cli && bun run build:server && bun run build:web",
"build:cli": "cd cli && bun run build",
"build:cli:exe": "cd cli && bun run build:exe",
"build:cli:exe:all": "cd cli && bun run build:exe:all",
"build:single-exe": "bun run build:web && (cd server && bun run generate:embedded-web-assets) && (cd cli && bun run build:exe:allinone)",
"build:single-exe:all": "bun run build:web && (cd server && bun run generate:embedded-web-assets) && (cd cli && bun run build:exe:allinone:all)",
"build:server": "cd server && bun run build",
"build:web": "cd web && bun run build",
"dev:server": "cd server && bun run dev",
"dev:web": "cd web && bun run dev",
"typecheck": "bun run typecheck:cli && bun run typecheck:server && bun run typecheck:web",
"typecheck:cli": "cd cli && bun run typecheck",
"typecheck:server": "cd server && bun run typecheck",
"typecheck:web": "cd web && bun run typecheck",
"test": "cd cli && bun run test"
},
"devDependencies": {
"concurrently": "^9.2.1",
"vite-plugin-pwa": "^1.2.0",
"workbox-window": "^7.4.0"
}
}