Skip to content

Commit 5fbc105

Browse files
alan-agius4dgp1130
authored andcommittedDec 17, 2024·
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 (cherry picked from commit 19bb2d4)
1 parent 8907541 commit 5fbc105

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

+9-1
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,15 @@ export async function setupServer(
692692
headers: serverOptions.headers,
693693
// Disable the websocket if live reload is disabled (false/undefined are the only valid values)
694694
ws: serverOptions.liveReload === false && serverOptions.hmr === false ? false : undefined,
695-
proxy,
695+
// When server-side rendering (SSR) is enabled togather with SSL and Express is being used,
696+
// we must configure Vite to use HTTP/1.1.
697+
// This is necessary because Express does not support HTTP/2.
698+
// We achieve this by defining an empty proxy.
699+
// See: https://github.com/vitejs/vite/blob/c4b532cc900bf988073583511f57bd581755d5e3/packages/vite/src/node/http.ts#L106
700+
proxy:
701+
serverOptions.ssl && ssrMode === ServerSsrMode.ExternalSsrMiddleware
702+
? (proxy ?? {})
703+
: proxy,
696704
cors: {
697705
// Allow preflight requests to be proxied.
698706
preflightContinue: true,

0 commit comments

Comments
 (0)
Please sign in to comment.