apps/web is both airship's home page and the app `make run` points the CLI at — which makes the site the thing that gets edited during development, and therefore the first place a regression in the editor shows up. routeTree.gen.ts is generated and committed on purpose so a clean checkout typechecks without a build first; preflight regenerates and diffs it, because committed generated files drift.
35 lines
1.3 KiB
JSON
35 lines
1.3 KiB
JSON
{
|
|
"$schema": "node_modules/wrangler/config-schema.json",
|
|
"name": "airship-web",
|
|
// TanStack Start's build already emits a module worker: dist/server/server.js
|
|
// exports `default = { fetch(request) }`. No adapter, no preset — the same
|
|
// artifact `make web:build` produces locally is what runs here.
|
|
"main": "./dist/server/server.js",
|
|
"compatibility_date": "2025-01-01",
|
|
// Required, not optional: the server entry imports node:async_hooks and
|
|
// node:stream. Without this flag the worker fails to boot at deploy time.
|
|
"compatibility_flags": ["nodejs_compat"],
|
|
// Static assets are served before the worker runs, so hashed client bundles
|
|
// never pay for an SSR invocation; anything unmatched falls through to the
|
|
// fetch handler above.
|
|
"assets": {
|
|
"directory": "./dist/client"
|
|
},
|
|
"observability": {
|
|
"enabled": true
|
|
},
|
|
// Both lanes name their target explicitly. Production could ride the
|
|
// top-level config instead, but once any env exists wrangler warns on an
|
|
// unqualified deploy — and `--env=""` is an awkward thing to thread through a
|
|
// GitHub Action's command string. Two named envs keeps both calls symmetric.
|
|
// main, compatibility_*, and assets are inherited from above.
|
|
"env": {
|
|
"production": {
|
|
"name": "airship-web"
|
|
},
|
|
"preview": {
|
|
"name": "airship-web-preview"
|
|
}
|
|
}
|
|
}
|