Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ac50c28

Browse files
authored
refactor(vite): use worker without wrapper for nitro env in dev (nitrojs#3466)
1 parent ea9c09f commit ac50c28

File tree

3 files changed

+25
-33
lines changed

3 files changed

+25
-33
lines changed

src/build/vite/dev.ts

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@ import type {
66
ViteDevServer,
77
} from "vite";
88

9-
import { resolve } from "node:path";
109
import { createServer } from "node:http";
11-
import { runtimeDir } from "nitro/runtime/meta";
1210
import { NodeRequest, sendNodeResponse } from "srvx/node";
1311
import { getSocketAddress, isSocketSupported } from "get-port-please";
1412
import { DevEnvironment } from "vite";
15-
import { NitroDevServer } from "../../dev/server";
1613

1714
// https://vite.dev/guide/api-environment-runtimes.html#modulerunner
1815

@@ -93,30 +90,6 @@ function createTransport(hooks: TransportHooks): HotChannel {
9390
};
9491
}
9592

96-
// ---- Nitro Dev Environment ----
97-
98-
export async function createNitroDevEnvironment(
99-
ctx: NitroPluginContext,
100-
name: string,
101-
config: ResolvedConfig
102-
): Promise<FetchableDevEnvironment> {
103-
const nitroDev = new NitroDevServer(ctx.nitro!);
104-
return createFetchableDevEnvironment(name, config, {
105-
fetch: nitroDev.fetch.bind(nitroDev),
106-
onMessage: nitroDev.onMessage.bind(nitroDev),
107-
offMessage: nitroDev.offMessage.bind(nitroDev),
108-
sendMessage: nitroDev.sendMessage.bind(nitroDev),
109-
async init() {
110-
await ctx.nitro!.hooks.callHook("dev:reload", {
111-
entry: resolve(runtimeDir, "internal/vite/worker.mjs"),
112-
workerData: {
113-
viteEntry: ctx.nitro!.options.entry,
114-
},
115-
});
116-
},
117-
});
118-
}
119-
12093
// ---- Vite Dev Server Integration ----
12194

12295
export async function configureViteDevServer(

src/build/vite/env.ts

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ import { NodeDevWorker } from "../../dev/worker";
55
import { join, resolve } from "node:path";
66
import { runtimeDir } from "nitro/runtime/meta";
77
import { resolveModulePath } from "exsolve";
8-
import {
9-
createFetchableDevEnvironment,
10-
createNitroDevEnvironment,
11-
} from "./dev";
8+
import { createFetchableDevEnvironment } from "./dev";
129

1310
export function createNitroEnvironment(
1411
ctx: NitroPluginContext
@@ -31,8 +28,24 @@ export function createNitroEnvironment(
3128
externalConditions: ctx.nitro!.options.exportConditions,
3229
},
3330
dev: {
34-
createEnvironment: (name, config) =>
35-
createNitroDevEnvironment(ctx, name, config),
31+
createEnvironment: (envName, envConfig) =>
32+
createFetchableDevEnvironment(
33+
envName,
34+
envConfig,
35+
new NodeDevWorker({
36+
name: envName,
37+
entry: resolve(runtimeDir, "internal/vite/worker.mjs"),
38+
data: {
39+
name: envName,
40+
server: true,
41+
viteEntry: resolve(runtimeDir, "internal/vite/nitro-dev.mjs"),
42+
globals: {
43+
__NITRO_RUNTIME_CONFIG__: ctx.nitro!.options.runtimeConfig,
44+
},
45+
},
46+
hooks: {},
47+
})
48+
),
3649
},
3750
};
3851
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import "#nitro-internal-pollyfills";
2+
import { useNitroApp } from "nitro/runtime";
3+
4+
const nitroApp = useNitroApp();
5+
6+
export const fetch = nitroApp.fetch;

0 commit comments

Comments
 (0)