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
This commit is contained in:
weishu
2025-12-21 08:42:00 +08:00
parent cf04937355
commit 1028547a3a
12 changed files with 278 additions and 10 deletions
+7 -4
View File
@@ -6,12 +6,13 @@
"es2022"
],
"jsx": "react",
"rootDir": "src",
"rootDir": "..",
"experimentalDecorators": true,
"outDir": "dist",
"noEmit": true,
"typeRoots": [
"./node_modules/@types"
"types": [
"node",
"bun-types"
],
"paths": {
"@/*": [
@@ -25,6 +26,8 @@
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.d.ts"
"src/**/*.d.ts",
"../server/src/**/*.ts",
"../server/src/**/*.d.ts"
]
}