Skip to report

The development server connects to the module runner

Explore the new runner transport, shared environment files, and the dependency change connecting the server to SSR runtime code.

vitejs/vite #16209 · PR by sheremet-va · Merged

vitejs/vite d9ed8574..a100b324

base and head as given

  • SSR module fetching now runs through the SSR development environment.
  • SSR environments now adjust source maps for asynchronous module evaluation.
  • Module runners now expose a remote module-fetch transport.
  • Development environments now expose a remote module-fetch transport.
files changed
17
in a component
14
lines in components
298
components
7
public routes changed
0
schema statements
0
new dependencies
0
excluded by role
3
Based on 12 of 14 eligible changed files

Environment-owned SSR loading

Modified
Before
The server owned SSR module fetching
After
SSR environments own module fetching

SSR module runners fetch through their environment, while the default SSR environment applies the source-map line offset needed for asynchronous evaluation. Existing server loading continues to create runners from the SSR environment.

In favour

  • In favour: Keeps SSR source-map adjustment with its execution environment

The model found nothing to weigh against this.

Remote module-fetch transport

Added
Before
did not exist
After
Runners request remote module fetches

A module runner can request module data through a message-based transport, and a development environment can answer fetch requests over its own message interface. Both transport APIs are publicly available.

In favour

  • In favour: Timed-out remote requests are removed from pending request tracking

Against

  • Against: Separate envelopes require adapters to connect the two transports
Files changed in 7 components (6 shown). Dependencies shown: 1 new, 12 unchanged
unchanged · 12new · 1

1 new dependency between components — Server Code → SSR Runtime

What else could behave differently

11 components · 91 files

These components import changed code, directly or through other files. A traced dependency is a place to review, not a confirmed runtime failure. Some paths stopped at heavily imported files; inspect those consumers separately.

Reached 3

ComponentSymbolCited atFilesReached by
SSR Codepackages/vite/src/node/ssr/Signature changed 1 of 12 changed symbols reaching itpackages/vite/src/node/server/environment.ts:19-9272 direct · 3 at two steps · 2 at three steps
Trace path

Shortest component path from the changed symbol:

  1. Server Code
  2. SSR Code

Later steps follow file imports; they do not prove this symbol is called.

packages/plugin-legacy/src/Signature changed 1 of 11 changed symbols reaching itpackages/vite/src/node/server/environment.ts:19-921none direct · 1 at two steps
Trace path

Shortest component path from the changed symbol:

  1. Server Code
  2. Node Core
  3. packages/plugin-legacy/src/

Later steps follow file imports; they do not prove this symbol is called.

Node Corepackages/vite/src/node/Signature changed 1 of 12 changed symbols reaching itpackages/vite/src/node/server/environment.ts:19-92165 direct · 11 at two steps
Trace path

Shortest component path from the changed symbol:

  1. Server Code
  2. Node Core

Later steps follow file imports; they do not prove this symbol is called.

Ranked lower 8

ComponentFilesReached by
packages/vite/src/module-runner/74 direct · 2 at two steps · 1 at three steps
packages/vite/src/node/server/147 direct · 6 at two steps · 1 at three steps
packages/vite/src/node/plugins/286 direct · 22 at two steps
packages/vite/src/node/optimizer/51 direct · 4 at two steps
packages/vite/src/module-runner/sourcemap/22 direct
packages/vite/src/node/server/middlewares/84 direct · 4 at two steps
packages/vite/src/node/ssr/runtime/22 direct
packages/vite/src/node/server/environments/11 direct

Not traced past a hub 5

SymbolHub fileImported by
packages/vite/src/module-runner/runner.ts:ModuleRunnerpackages/vite/src/node/server/index.ts34
packages/vite/src/module-runner/runner.ts:ModuleRunnerpackages/vite/src/node/index.ts30
packages/vite/src/module-runner/runner.ts:ModuleRunnerpackages/vite/src/node/config.ts56
packages/vite/src/module-runner/runner.ts:ModuleRunnerpackages/vite/src/node/plugin.ts35
packages/vite/src/node/server/index.ts:_createServerpackages/vite/src/node/server/index.ts34

Statements 3

DevEnvironment's signature changed and reached 7 files in SSR. 232
packages/vite/src/node/server/environment.ts:19-92
DevEnvironment's signature changed and reached 1 file in plugin legacy. 1
packages/vite/src/node/server/environment.ts:19-92
DevEnvironment's signature changed and reached 16 files in node core. 511
packages/vite/src/node/server/environment.ts:19-92

30 reached files belong to no component — tests, docs and config.

Routes, schema, dependencies

No public URL, no migration and no new package.

Inspect components, files and symbols

Component

SSR CodeModified
packages/vite/src/node/ssr/

2 files · 42 lines

exports, 3 dependents

SSR exports no longer included ssrFetchModule.

Environment-owned SSR loading, modified

SSR HTMLModified
playground/ssr-html/

2 files · 8 lines

Environment-owned SSR loading, modified

Node CoreModified
packages/vite/src/node/

1 file · 3 lines

6 dependents

Node exports added FetchResult and RemoteEnvironmentTransport.

Remote module-fetch transport, added

Module RunnerModified
packages/vite/src/module-runner/

4 files · 95 lines

5 dependents

Module runner exports added RemoteRunnerTransport and RunnerTransport.

Remote module-fetch transport, added

Server CodeModified
packages/vite/src/node/server/

3 files · 101 lines

7 dependents

Server exports added RemoteEnvironmentTransport.

Environment-owned SSR loading, modified

SSR RuntimeModified
packages/vite/src/node/ssr/runtime/

1 file · 26 lines

2 dependents

Environment-owned SSR loading, modified

Server EnvironmentsAdded
packages/vite/src/node/server/environments/

1 file · 23 lines

1 dependent

ranked lower · 0.04

Server environments exports added createSsrEnvironment.

Environment-owned SSR loading, modified

File

SSR Codepackages/vite/src/node/ssr/
packages/vite/src/node/ssr/fetchModule.ts

+13 −9

Environment-owned SSR loading, modified

SSR Codepackages/vite/src/node/ssr/
packages/vite/src/node/ssr/ssrFetchModule.ts

+0 −20

Environment-owned SSR loading, modified

SSR HTMLplayground/ssr-html/
playground/ssr-html/test-network-imports.js

+4 −2

Environment-owned SSR loading, modified

SSR HTMLplayground/ssr-html/
playground/ssr-html/test-stacktrace-runtime.js

+1 −1

Environment-owned SSR loading, modified

Server Codepackages/vite/src/node/server/
packages/vite/src/node/server/index.ts

+25 −17

Environment-owned SSR loading, modified

Server Codepackages/vite/src/node/server/
packages/vite/src/node/server/environmentTransport.ts

+38 −0

Environment-owned SSR loading, modified

Server Codepackages/vite/src/node/server/
packages/vite/src/node/server/environment.ts

+20 −1

Environment-owned SSR loading, modified

SSR Runtimepackages/vite/src/node/ssr/runtime/
packages/vite/src/node/ssr/runtime/serverModuleRunner.ts

+17 −9

Environment-owned SSR loading, modified

Server Environmentspackages/vite/src/node/server/environments/
packages/vite/src/node/server/environments/ssrEnvironment.ts

+23 −0

Environment-owned SSR loading, modified

Node Corepackages/vite/src/node/
packages/vite/src/node/index.ts

+2 −1

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/transport.ts

+84 −0

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/types.ts

+3 −4

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/index.ts

+2 −0

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/runner.ts

+1 −1

Remote module-fetch transport, added

Function

imports what changeddownstream of it, one mark per step

ViteDevServer()packages/vite/src/node/server/index.ts

reaches 2 components

ViteDevServer's signature changed, affecting 2 of 18 names in its file, and reached 5 optimizer files. 14
packages/vite/src/node/server/index.ts:226-433
ViteDevServer's signature changed and reached 8 files in server middlewares. 44
packages/vite/src/node/server/index.ts:226-433

Environment-owned SSR loading, modified

ModuleRunner()packages/vite/src/module-runner/runner.ts

reaches 8 components

ModuleRunner's body changed and reached 7 files in the module runner. 421
packages/vite/src/module-runner/runner.ts:47-391
ModuleRunner's body changed and reached 14 files in server code. 761
packages/vite/src/module-runner/runner.ts:47-391
ModuleRunner's body changed and reached 2 files in module-runner sourcemap. 2
packages/vite/src/module-runner/runner.ts:47-391
ModuleRunner's body changed and reached 2 files in SSR runtime. 2
packages/vite/src/module-runner/runner.ts:47-391
The analysis declined to trace ModuleRunner's body change through server/index.ts at hop 1 because 34 files import it.
packages/vite/src/module-runner/runner.ts:47-391
The analysis declined to trace ModuleRunner's body change through node/index.ts at hop 2 because 30 files import it.
packages/vite/src/module-runner/runner.ts:47-391
The analysis declined to trace ModuleRunner's body change through config.ts at hop 3 because 56 files import it.
packages/vite/src/module-runner/runner.ts:47-391
The analysis declined to trace ModuleRunner's body change through plugin.ts at hop 3 because 35 files import it.
packages/vite/src/module-runner/runner.ts:47-391

Remote module-fetch transport, added

Diff

SSR Codepackages/vite/src/node/ssr/
packages/vite/src/node/ssr/fetchModule.ts

2–3, 6–6, 13–13 and 7 more spans

Environment-owned SSR loading, modified

SSR Codepackages/vite/src/node/ssr/
packages/vite/src/node/ssr/ssrFetchModule.ts

1–20

Environment-owned SSR loading, modified

SSR HTMLplayground/ssr-html/
playground/ssr-html/test-network-imports.js

15–18

Environment-owned SSR loading, modified

SSR HTMLplayground/ssr-html/
playground/ssr-html/test-stacktrace-runtime.js

16–16

Environment-owned SSR loading, modified

Server Codepackages/vite/src/node/server/
packages/vite/src/node/server/index.ts

19–19, 54–54, 96–96 and 11 more spans

Environment-owned SSR loading, modified

Server Codepackages/vite/src/node/server/
packages/vite/src/node/server/environmentTransport.ts

1–38

Environment-owned SSR loading, modified

Server Codepackages/vite/src/node/server/
packages/vite/src/node/server/environment.ts

1–1, 8–9, 16–16 and 5 more spans

Environment-owned SSR loading, modified

SSR Runtimepackages/vite/src/node/ssr/runtime/
packages/vite/src/node/ssr/runtime/serverModuleRunner.ts

5–5, 12–15, 22–25 and 3 more spans

Environment-owned SSR loading, modified

Server Environmentspackages/vite/src/node/server/environments/
packages/vite/src/node/server/environments/ssrEnvironment.ts

1–23

Environment-owned SSR loading, modified

Node Corepackages/vite/src/node/
packages/vite/src/node/index.ts

121–121, 137–137

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/transport.ts

1–84

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/types.ts

18–18, 127–127, 129–129

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/index.ts

6–6, 8–8

Remote module-fetch transport, added

Module Runnerpackages/vite/src/module-runner/
packages/vite/src/module-runner/runner.ts

257–257

Remote module-fetch transport, added

Analysis scope

1989 → 7
  1. 1,989
    files at head
  2. 389
    components
  3. 7
    changed by this change
  4. 6
    shown above of 7

Where the new files landed

3 new files
New fileBelongs toUsed byCallsServes
packages/vite/src/module-runner/transport.ts
Module Runnerbase frame
its own component onlynothing outside its own component
packages/vite/src/node/server/environmentTransport.ts
Server Codebase frame
Node Core
nothing outside its own component
packages/vite/src/node/server/environments/ssrEnvironment.ts
Server Environmentsnew territory
Server Code
Server Codepackages/vite/src/shared/
7components changed
5reached, not changed
1components added/removed
4dependencies added between components
1dependencies removed between components
0files moved to another path

17 files changed, 28 claims stated. 11 components reached in total.

naming: “model

narrative: “model

analyzer 0.1.0, config v1.9.0-phase8

Every line above is derived from d9ed8574..a100b324 and nothing else.