Skip to content

Commit 17a7b8c

Browse files
committed
refactor(@angular/build): also add server.preTransformRequests
5c13601 moved `preTransformRequests` from the `server` to `dev` section. But vite, still uses the `server` section in such cases https://github.com/vitejs/vite/blob/bcdb51a1ac082f4e8ed6f820787d6745dfaa972d/packages/vite/src/node/server/index.ts#L673 and https://github.com/vitejs/vite/blob/bcdb51a1ac082f4e8ed6f820787d6745dfaa972d/packages/vite/src/node/server/middlewares/indexHtml.ts#L475
1 parent 414736b commit 17a7b8c

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

packages/angular/build/src/builders/dev-server/vite-server.ts

+12-7
Original file line numberDiff line numberDiff line change
@@ -734,6 +734,7 @@ function updateResultRecord(
734734
}
735735
}
736736

737+
// eslint-disable-next-line max-lines-per-function
737738
export async function setupServer(
738739
serverOptions: NormalizedDevServerOptions,
739740
outputFiles: Map<string, OutputFileRecord>,
@@ -776,6 +777,15 @@ export async function setupServer(
776777
break;
777778
}
778779

780+
/**
781+
* Required when using `externalDependencies` to prevent Vite load errors.
782+
*
783+
* @note Can be removed if Vite introduces native support for externals.
784+
* @note Vite misresolves browser modules in SSR when accessing URLs with multiple segments
785+
* (e.g., 'foo/bar'), as they are not correctly re-based from the base href.
786+
*/
787+
const preTransformRequests =
788+
externalMetadata.explicitBrowser.length === 0 && ssrMode === ServerSsrMode.NoSsr;
779789
const cacheDir = join(serverOptions.cacheOptions.path, serverOptions.buildTarget.project, 'vite');
780790
const configuration: InlineConfig = {
781791
configFile: false,
@@ -806,15 +816,10 @@ export async function setupServer(
806816
preserveSymlinks,
807817
},
808818
dev: {
809-
// This is needed when `externalDependencies` is used to prevent Vite load errors.
810-
// NOTE: If Vite adds direct support for externals, this can be removed.
811-
// NOTE: Vite breaks the resolution of browser modules in SSR
812-
// when accessing a url with two or more segments (e.g., 'foo/bar'),
813-
// as they are not re-based from the base href.
814-
preTransformRequests:
815-
externalMetadata.explicitBrowser.length === 0 && ssrMode === ServerSsrMode.NoSsr,
819+
preTransformRequests,
816820
},
817821
server: {
822+
preTransformRequests,
818823
warmup: {
819824
ssrFiles,
820825
},

0 commit comments

Comments
 (0)