From 1a9b0424134e3649c3016780dbd18bd16866fe4d Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 11 Mar 2025 12:12:25 +0900 Subject: [PATCH 1/3] fix(vite-node): fix buildStart --- packages/vite-node/src/cli.ts | 3 +++ test/vite-node/src/deps.ts | 2 +- test/vite-node/test/hmr.test.ts | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/vite-node/src/cli.ts b/packages/vite-node/src/cli.ts index 0b49d5cc367c..ee079b13cca3 100644 --- a/packages/vite-node/src/cli.ts +++ b/packages/vite-node/src/cli.ts @@ -96,6 +96,9 @@ async function run(files: string[], options: CliOptions = {}) { }) if (Number(viteVersion.split('.')[0]) < 6) { await server.pluginContainer.buildStart({}) + } else { + // until https://github.com/vitejs/vite/issues/19607 is fixed + await server.environments.client.pluginContainer.buildStart({}) } const env = loadEnv(server.config.mode, server.config.envDir, '') diff --git a/test/vite-node/src/deps.ts b/test/vite-node/src/deps.ts index c81840a1d46e..7dfabf9fcd25 100644 --- a/test/vite-node/src/deps.ts +++ b/test/vite-node/src/deps.ts @@ -1,7 +1,7 @@ import './deps.css' // eslint-disable-next-line no-console -console.log('deps') +console.log('[deps.ts] imported') export {} diff --git a/test/vite-node/test/hmr.test.ts b/test/vite-node/test/hmr.test.ts index f24d8a7d7865..45296fbf3a76 100644 --- a/test/vite-node/test/hmr.test.ts +++ b/test/vite-node/test/hmr.test.ts @@ -28,3 +28,8 @@ test('can handle top-level throw in self-accepting module', async () => { await viteNode.waitForStderr('some error') await viteNode.waitForStderr(`[hmr] Failed to reload ${scriptFile}. This could be due to syntax errors or importing non-existent modules. (see errors above)`) }) + +test('basic', async () => { + const { viteNode } = await runViteNodeCli('--watch', resolve(__dirname, '../src/testMod.ts')) + await viteNode.waitForStdout('[deps.ts] imported') +}) From ccc5a529ecae4bb9f3f210c59916d864a9fa7bc6 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 11 Mar 2025 12:22:51 +0900 Subject: [PATCH 2/3] chore: lint --- packages/vite-node/src/cli.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/vite-node/src/cli.ts b/packages/vite-node/src/cli.ts index ee079b13cca3..0f0375f991cb 100644 --- a/packages/vite-node/src/cli.ts +++ b/packages/vite-node/src/cli.ts @@ -96,7 +96,8 @@ async function run(files: string[], options: CliOptions = {}) { }) if (Number(viteVersion.split('.')[0]) < 6) { await server.pluginContainer.buildStart({}) - } else { + } + else { // until https://github.com/vitejs/vite/issues/19607 is fixed await server.environments.client.pluginContainer.buildStart({}) } From 5ef609cf29b8f927e9dcd8ad76b81b96c8c06232 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Thu, 13 Mar 2025 09:15:07 +0900 Subject: [PATCH 3/3] test: add repro --- packages/vite-node/src/cli.ts | 2 +- test/vite-node/test/cli.test.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/vite-node/src/cli.ts b/packages/vite-node/src/cli.ts index 0f0375f991cb..ebae45bc6e03 100644 --- a/packages/vite-node/src/cli.ts +++ b/packages/vite-node/src/cli.ts @@ -98,7 +98,7 @@ async function run(files: string[], options: CliOptions = {}) { await server.pluginContainer.buildStart({}) } else { - // until https://github.com/vitejs/vite/issues/19607 is fixed + // directly access client plugin container until https://github.com/vitejs/vite/issues/19607 await server.environments.client.pluginContainer.buildStart({}) } diff --git a/test/vite-node/test/cli.test.ts b/test/vite-node/test/cli.test.ts index 382b8cd95672..de28516c8baf 100644 --- a/test/vite-node/test/cli.test.ts +++ b/test/vite-node/test/cli.test.ts @@ -64,3 +64,13 @@ it('buildStart', async () => { const result = await runViteNodeCli('--root', root, resolve(root, 'test.ts')) await result.viteNode.waitForStdout('["buildStart:in","buildStart:out"]') }) + +it('buildStart with all ssr', async () => { + const root = resolve(__dirname, '../src/buildStart') + const result = await runViteNodeCli( + `--root=${root}`, + '--options.transformMode.ssr=.*', + resolve(root, 'test.ts'), + ) + await result.viteNode.waitForStdout('["buildStart:in","buildStart:out"]') +})