diff --git a/packages/plugin-rsc/package.json b/packages/plugin-rsc/package.json index d04999d32..356a65b47 100644 --- a/packages/plugin-rsc/package.json +++ b/packages/plugin-rsc/package.json @@ -57,6 +57,7 @@ "@types/react-dom": "^19.2.2", "@vitejs/plugin-react": "workspace:*", "@vitejs/test-dep-cjs-and-esm": "./test-dep/cjs-and-esm", + "picocolors": "^1.1.1", "react": "^19.2.0", "react-dom": "^19.2.0", "react-server-dom-webpack": "^19.2.0", diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index 1dd69d51a..e6aa5a2f6 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -270,19 +270,28 @@ export default function vitePluginRsc( const manager = new RscPluginManager() const buildApp: NonNullable = async (builder) => { + const colors = await import('picocolors') + const logStep = (msg: string) => { + builder.config.logger.info(colors.blue(msg)) + } + // no-ssr case // rsc -> client -> rsc -> client if (!builder.environments.ssr?.config.build.rollupOptions.input) { manager.isScanBuild = true builder.environments.rsc!.config.build.write = false builder.environments.client!.config.build.write = false + logStep('[1/4] analyze client references...') await builder.build(builder.environments.rsc!) + logStep('[2/4] analyze server references...') await builder.build(builder.environments.client!) manager.isScanBuild = false builder.environments.rsc!.config.build.write = true builder.environments.client!.config.build.write = true + logStep('[3/4] build rsc environment...') await builder.build(builder.environments.rsc!) manager.stabilize() + logStep('[4/4] build client environment...') await builder.build(builder.environments.client!) writeAssetsManifest(['rsc']) return @@ -292,14 +301,19 @@ export default function vitePluginRsc( manager.isScanBuild = true builder.environments.rsc!.config.build.write = false builder.environments.ssr!.config.build.write = false + logStep('[1/5] analyze client references...') await builder.build(builder.environments.rsc!) + logStep('[2/5] analyze server references...') await builder.build(builder.environments.ssr!) manager.isScanBuild = false builder.environments.rsc!.config.build.write = true builder.environments.ssr!.config.build.write = true + logStep('[3/5] build rsc environment...') await builder.build(builder.environments.rsc!) manager.stabilize() + logStep('[4/5] build client environment...') await builder.build(builder.environments.client!) + logStep('[5/5] build ssr environment...') await builder.build(builder.environments.ssr!) writeAssetsManifest(['ssr', 'rsc']) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index db0a7a5c2..da7c656d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -485,6 +485,9 @@ importers: '@vitejs/test-dep-cjs-and-esm': specifier: ./test-dep/cjs-and-esm version: link:test-dep/cjs-and-esm + picocolors: + specifier: ^1.1.1 + version: 1.1.1 react: specifier: ^19.2.0 version: 19.2.0