@@ -2821,11 +2821,14 @@ export async function getBuildManifest(
2821
2821
2822
2822
function mergeEnvironmentOptions(
2823
2823
base: EnvironmentOptions,
2824
- overrides: EnvironmentOptions
2824
+ ... overrides: EnvironmentOptions[]
2825
2825
): EnvironmentOptions {
2826
2826
let vite = getVite();
2827
2827
2828
- return vite.mergeConfig(base, overrides, false);
2828
+ return overrides.reduce(
2829
+ (merged, override) => vite.mergeConfig(merged, override, false),
2830
+ base
2831
+ );
2829
2832
}
2830
2833
2831
2834
export async function getEnvironmentOptionsResolvers(
@@ -2968,20 +2971,27 @@ export async function getEnvironmentOptionsResolvers(
2968
2971
for (let [serverBundleId, routes] of Object.entries(
2969
2972
getRoutesByServerBundleId(buildManifest)
2970
2973
)) {
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
+ },
2982
2989
},
2983
2990
},
2984
- });
2991
+ // Ensure server bundle environments extend the user's SSR
2992
+ // environment config if it exists
2993
+ viteUserConfig.environments?.ssr ?? {}
2994
+ );
2985
2995
}
2986
2996
} else {
2987
2997
environmentOptionsResolvers.ssr = ({ viteUserConfig }) =>
0 commit comments