Skip to content

Commit 19bb2d4

Browse files
alan-agius4dgp1130
authored andcommitted
fix(@angular/build): force HTTP/1.1 in dev-server SSR with SSL
When server-side rendering (SSR) is enabled with SSL and Express, Vite must use HTTP/1.1 because Express does not support HTTP/2. This is achieved by setting an empty proxy configuration. Reference: https://github.com/vitejs/vite/blob/c4b532cc900bf988073583511f57bd581755d5e3/packages/vite/src/node/http.ts#L106 Closes #29142
1 parent e5c66f5 commit 19bb2d4

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,15 @@ export async function setupServer(
681681
headers: serverOptions.headers,
682682
// Disable the websocket if live reload is disabled (false/undefined are the only valid values)
683683
ws: serverOptions.liveReload === false && serverOptions.hmr === false ? false : undefined,
684-
proxy,
684+
// When server-side rendering (SSR) is enabled togather with SSL and Express is being used,
685+
// we must configure Vite to use HTTP/1.1.
686+
// This is necessary because Express does not support HTTP/2.
687+
// We achieve this by defining an empty proxy.
688+
// See: https://github.com/vitejs/vite/blob/c4b532cc900bf988073583511f57bd581755d5e3/packages/vite/src/node/http.ts#L106
689+
proxy:
690+
serverOptions.ssl && ssrMode === ServerSsrMode.ExternalSsrMiddleware
691+
? (proxy ?? {})
692+
: proxy,
685693
cors: {
686694
// Allow preflight requests to be proxied.
687695
preflightContinue: true,

0 commit comments

Comments
 (0)