Skip to content

Commit

Permalink
fix(@angular/build): force HTTP/1.1 in dev-server SSR with SSL
Browse files Browse the repository at this point in the history
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)
  • Loading branch information
alan-agius4 authored and dgp1130 committed Dec 17, 2024
1 parent 8907541 commit 5fbc105
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion packages/angular/build/src/builders/dev-server/vite-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -692,7 +692,15 @@ export async function setupServer(
headers: serverOptions.headers,
// Disable the websocket if live reload is disabled (false/undefined are the only valid values)
ws: serverOptions.liveReload === false && serverOptions.hmr === false ? false : undefined,
proxy,
// When server-side rendering (SSR) is enabled togather with SSL and Express is being used,
// we must configure Vite to use HTTP/1.1.
// This is necessary because Express does not support HTTP/2.
// We achieve this by defining an empty proxy.
// See: https://github.com/vitejs/vite/blob/c4b532cc900bf988073583511f57bd581755d5e3/packages/vite/src/node/http.ts#L106
proxy:
serverOptions.ssl && ssrMode === ServerSsrMode.ExternalSsrMiddleware
? (proxy ?? {})
: proxy,
cors: {
// Allow preflight requests to be proxied.
preflightContinue: true,
Expand Down

0 comments on commit 5fbc105

Please sign in to comment.