Skip to content

Commit 2edef05

Browse files
committed
fix: ensure __vite_rsc_assets_manifest.js
1 parent 486c816 commit 2edef05

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

packages/plugin-rsc/src/plugin.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,39 @@ export default function vitePluginRsc(
220220
},
221221
},
222222
},
223+
// TODO: buildApp hook on v7
223224
builder: {
224225
sharedPlugins: true,
225226
sharedConfigBuild: true,
226227
async buildApp(builder) {
228+
if (!builder.environments.ssr?.config.build.rollupOptions.input) {
229+
isScanBuild = true
230+
builder.environments.rsc!.config.build.write = false
231+
builder.environments.client!.config.build.write = false
232+
await builder.build(builder.environments.rsc!)
233+
await builder.build(builder.environments.client!)
234+
isScanBuild = false
235+
builder.environments.rsc!.config.build.write = true
236+
builder.environments.client!.config.build.write = true
237+
await builder.build(builder.environments.rsc!)
238+
// sort for stable build
239+
clientReferenceMetaMap = sortObject(clientReferenceMetaMap)
240+
serverResourcesMetaMap = sortObject(serverResourcesMetaMap)
241+
await builder.build(builder.environments.client!)
242+
243+
const assetsManifestCode = `export default ${JSON.stringify(
244+
buildAssetsManifest,
245+
null,
246+
2,
247+
)}`
248+
const manifestPath = path.join(
249+
builder.environments!.rsc!.config.build!.outDir!,
250+
BUILD_ASSETS_MANIFEST_NAME,
251+
)
252+
fs.writeFileSync(manifestPath, assetsManifestCode)
253+
return
254+
}
255+
227256
isScanBuild = true
228257
builder.environments.rsc!.config.build.write = false
229258
await builder.build(builder.environments.rsc!)
@@ -636,6 +665,7 @@ export default function vitePluginRsc(
636665
return
637666
},
638667
writeBundle() {
668+
// TODO: this doesn't happen when no-ssr build
639669
if (this.environment.name === 'ssr') {
640670
// output client manifest to non-client build directly.
641671
// this makes server build to be self-contained and deploy-able for cloudflare.

0 commit comments

Comments
 (0)