Skip to content

Commit 033bc34

Browse files
Extend server bundle env from user SSR env (remix-run#12985)
1 parent 727bc37 commit 033bc34

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

packages/react-router-dev/vite/plugin.ts

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2821,11 +2821,14 @@ export async function getBuildManifest(
28212821

28222822
function mergeEnvironmentOptions(
28232823
base: EnvironmentOptions,
2824-
overrides: EnvironmentOptions
2824+
...overrides: EnvironmentOptions[]
28252825
): EnvironmentOptions {
28262826
let vite = getVite();
28272827

2828-
return vite.mergeConfig(base, overrides, false);
2828+
return overrides.reduce(
2829+
(merged, override) => vite.mergeConfig(merged, override, false),
2830+
base
2831+
);
28292832
}
28302833

28312834
export async function getEnvironmentOptionsResolvers(
@@ -2968,20 +2971,27 @@ export async function getEnvironmentOptionsResolvers(
29682971
for (let [serverBundleId, routes] of Object.entries(
29692972
getRoutesByServerBundleId(buildManifest)
29702973
)) {
2971-
environmentOptionsResolvers[
2972-
// Note: Hyphens are not valid in Vite environment names
2973-
`${SSR_BUNDLE_PREFIX}${serverBundleId.replaceAll("-", "_")}`
2974-
] = ({ viteUserConfig }) =>
2975-
mergeEnvironmentOptions(getBaseServerOptions({ viteUserConfig }), {
2976-
build: {
2977-
outDir: getServerBuildDirectory(ctx, { serverBundleId }),
2978-
rollupOptions: {
2979-
input: `${virtual.serverBuild.id}?route-ids=${Object.keys(
2980-
routes
2981-
).join(",")}`,
2974+
// Note: Hyphens are not valid in Vite environment names
2975+
const serverBundleEnvironmentId = serverBundleId.replaceAll("-", "_");
2976+
const environmentName =
2977+
`${SSR_BUNDLE_PREFIX}${serverBundleEnvironmentId}` as const;
2978+
environmentOptionsResolvers[environmentName] = ({ viteUserConfig }) =>
2979+
mergeEnvironmentOptions(
2980+
getBaseServerOptions({ viteUserConfig }),
2981+
{
2982+
build: {
2983+
outDir: getServerBuildDirectory(ctx, { serverBundleId }),
2984+
rollupOptions: {
2985+
input: `${virtual.serverBuild.id}?route-ids=${Object.keys(
2986+
routes
2987+
).join(",")}`,
2988+
},
29822989
},
29832990
},
2984-
});
2991+
// Ensure server bundle environments extend the user's SSR
2992+
// environment config if it exists
2993+
viteUserConfig.environments?.ssr ?? {}
2994+
);
29852995
}
29862996
} else {
29872997
environmentOptionsResolvers.ssr = ({ viteUserConfig }) =>

0 commit comments

Comments
 (0)