nitrojs/nitro c468de27..ad5d4722
base and head as given
- Nitro now provides a Vite plugin.
- The plugin adds a dedicated Nitro environment to Vite builds.
- Development servers now share a public worker interface.
- The playground now demonstrates Vite-hosted Nitro services.
- Vite entered Nitro’s build and development path as an external dependency.
- files changed
- 50
- in a component
- 45
- lines in components
- 2,172
- components
- 15
- public routes changed
- 0
- schema statements
- 0
- new dependencies
- 12
- excluded by role
- 5
Vite-hosted Nitro services
Added- Before
- Vite integration did not exist
- After
- Vite hosts configured Nitro services
Vite projects can register Nitro-backed SSR and API services, including Vue and React examples. The plugin creates Nitro and service environments, routes requests to configured services, and builds client assets into Nitro’s public output.
In favour
- In favour: Shares Vite’s build pipeline with Nitro services
- In favour: Routes service requests through one generated dispatcher
The model found nothing to weigh against this.
Development worker coordination
Modified- Before
- Worker types lived with dev server
- After
- Worker types are shared publicly
Development servers now use shared worker lifecycle, request, upgrade, and messaging contracts. They forward traffic to ready workers, relay messages, and record worker addresses in build information.
In favour
- In favour: Centralizes worker lifecycle and messaging contracts
Against
- Against: Creates a two-way dependency between shared types and development code
Inspect 5 source files behind this explanation
2 new dependencies between components — Playground → Source · Type Definitions → Development Server
What else could behave differently
46 components · 170 filesThese components import changed code, directly or through other files. A traced dependency is a place to review, not a confirmed runtime failure.
Reached 3
| Component | Symbol | Cited at | Files | Reached by |
|---|---|---|---|---|
| Type Definitionssrc/types/ | Added DevWorkerData1 of 10 changed symbols reaching it | src/dev/worker.ts:18-22 | 10 | 4 direct · 4 at two steps · 1 at three steps · 1 at four stepsTrace pathShortest component path from the changed symbol:
Later steps follow file imports; they do not prove this symbol is called. |
| Development Serversrc/dev/ | Added fetchAddress1 of 15 changed symbols reaching it | src/dev/proxy.ts:56-89 | 3 | 2 direct · 1 at two stepsTrace pathShortest component path from the changed symbol:
Later steps follow file imports; they do not prove this symbol is called. |
| Sourcesrc/ | Added nitro1 of 29 changed symbols reaching it | src/build/vite/plugin.ts:19-183 | 6 | 2 direct · 4 at two stepsTrace pathShortest component path from the changed symbol:
Later steps follow file imports; they do not prove this symbol is called. |
Held back 22
| Component | Files | Reached by | Resolution |
|---|---|---|---|
| src/presets/_utils/ | 1 | none direct · 1 at three steps | precise |
| src/presets/ | 3 | none direct · 1 at three steps · 2 at four steps | precise |
| src/presets/aws-lambda/ | 3 | none direct · 3 at four steps | precise |
| src/presets/node/ | 4 | none direct · 1 at three steps · 3 at four steps | precise |
| src/presets/deno/ | 3 | none direct · 1 at three steps · 2 at four steps | precise |
| src/presets/_nitro/ | 6 | none direct · 6 at four steps | precise |
| src/presets/bun/ | 2 | none direct · 2 at four steps | precise |
| src/presets/stormkit/ | 2 | none direct · 2 at four steps | precise |
| src/presets/winterjs/ | 2 | none direct · 2 at four steps | precise |
| src/presets/firebase/ | 1 | none direct · 1 at four steps | precise |
| src/presets/_static/ | 1 | none direct · 1 at four steps | precise |
| src/presets/alwaysdata/ | 1 | none direct · 1 at four steps | precise |
| src/presets/cleavr/ | 1 | none direct · 1 at four steps | precise |
| src/presets/digitalocean/ | 1 | none direct · 1 at four steps | precise |
| src/presets/edgio/ | 1 | none direct · 1 at four steps | precise |
| src/presets/flightcontrol/ | 1 | none direct · 1 at four steps | precise |
| src/presets/genezio/ | 1 | none direct · 1 at four steps | precise |
| src/presets/heroku/ | 1 | none direct · 1 at four steps | precise |
| src/presets/koyeb/ | 1 | none direct · 1 at four steps | precise |
| src/presets/platform.sh/ | 1 | none direct · 1 at four steps | precise |
| src/presets/render.com/ | 1 | none direct · 1 at four steps | precise |
| src/presets/zerops/ | 1 | none direct · 1 at four steps | precise |
Ranked lower 21
| Component | Files | Reached by |
|---|---|---|
| src/runtime/ | 22 | none direct · 1 at two steps · 16 at three steps · 5 at four steps |
| scripts/ | 2 | 1 direct · 1 at three steps |
| playground/ | 1 | 1 direct |
| src/utils/ | 4 | none direct · 4 at two steps |
| src/build/ | 7 | none direct · 7 at two steps |
| src/prerender/ | 2 | none direct · 1 at two steps · 1 at three steps |
| src/config/ | 17 | 15 direct · 2 at two steps |
| src/cli/ | 5 | 1 direct · 4 at two steps |
| src/build/plugins/ | 12 | none direct · 8 at two steps · 4 at three steps |
| src/build/vite/ | 6 | 5 direct · 1 at two steps |
| playground/services/vue/ | 2 | 2 direct |
| playground/services/react/ | 1 | 1 direct |
| src/presets/cloudflare/ | 6 | none direct · 2 at two steps · 4 at four steps |
| src/build/rolldown/ | 4 | none direct · 4 at two steps |
| src/build/rollup/ | 4 | none direct · 4 at two steps |
| src/presets/netlify/ | 4 | none direct · 2 at two steps · 2 at four steps |
| src/presets/aws-amplify/ | 3 | none direct · 1 at two steps · 1 at three steps · 1 at four steps |
| src/presets/azure/ | 3 | none direct · 2 at two steps · 1 at four steps |
| src/presets/vercel/ | 3 | none direct · 2 at two steps · 1 at four steps |
| src/presets/iis/ | 2 | none direct · 2 at two steps |
| src/presets/zeabur/ | 2 | none direct · 1 at two steps · 1 at four steps |
Statements 4
DevWorkerData reached 10 files in Type Definitions. 4411fetchAddress reached 3 files in Development Server. 21nitro reached 6 files in Source. 24distSubpaths signature change reached 2 files in Scripts. 1125 reached files belong to no component — tests, docs and config.
Routes, schema, dependencies
| What | Object | Where |
|---|---|---|
| + dependency | @types/express@^5.0.3 | declared, and used by no file in any component |
| + dependency | @vitejs/plugin-react@^4.6.0 | playground/vite.config.mjs:5 |
| + dependency | @vitejs/plugin-vue@^6.0.0 | playground/vite.config.mjs:4 |
| + dependency | express@^5.1.0 | declared, and used by no file in any component |
| + dependency | fetch-to-node@^2.1.0 | playground/services/node.ts:2 |
| + dependency | fetchdts@^0.1.5 | declared, and used by no file in any component |
| + dependency | hono@^4.8.4 | playground/services/hono.ts:1 |
| + dependency | nitro@* | src/cli/commands/build.ts:4 |
| + dependency | react-dom@^19.1.0 | playground/services/react/client.tsx:2 |
| + dependency | react-refresh@^0.17.0 | declared, and used by no file in any component |
| + dependency | vite@^7.0.2 | src/build/vite/dev.ts:14 |
| + dependency | vue@^3.5.17 | playground/services/vue/main.ts:3 |
12 statements, with the lines behind them
@vitejs/plugin-react ^4.6.0 was added as a dependency.@vitejs/plugin-vue ^6.0.0 was added as a dependency.fetch-to-node ^2.1.0 was added as a dependency.hono ^4.8.4 was added as a dependency.nitro * was added as a dependency.react-dom ^19.1.0 was added as a dependency.vite ^7.0.2 was added as a dependency.vue ^3.5.17 was added as a dependency.Inspect components, files and symbols
Component
default export left the Server Routes surface.File
Function
imports what changeddownstream of it, one mark per step
Diff
Analysis scope
559 → 15- files at head559
- components52
- changed by this change15
- shown above of 156
Where the new files landed
31 new files| New file | Belongs to | Used by | Calls | Serves |
|---|---|---|---|---|
| src/vite.ts | Sourcebase frame | — | Vite Build | ./vite |
| src/runtime/2 new filesnothing outside src/runtime/internal/vite/ imports any of it · imports 1 package this change added | Runtimebase frame | nothing in the existing application | nothing outside its own component | — |
| playground/2 new filesimports 3 packages this change added | Playgroundbase frame | nothing in the existing application | Source | — |
| playground/services/5 new filesimports 2 packages this change added | Playground Servicesnew territory | nothing in the existing application | Playground Assets | — |
| src/build/vite/6 new filesimports 1 package this change added | Vite Buildnew territory | Source | lib/Sourcesrc/build/src/build/plugins/Development ServerType Definitions…and 1 more component | — |
| playground/services/vue/5 new filesimports 1 package this change added | Vue Servicesnew territory | nothing in the existing application | nothing outside its own component | — |
…and 2 components ranked lower, holding 10 new files.
50 files changed, 84 claims stated. 46 components reached in total.