Skip to content

Commit e88db05

Browse files
authored
[fix] force Vite dev mode to use HTTP/1 for TLS (#3553)
* [fix] force Vite dev mode to use HTTP/1 for TLS This avoids issues with node-fetch and HTTP/2 Request headers, which was breaking our `dev --https`. * add changeset * only set server.proxy when server.https is present
1 parent 1b68649 commit e88db05

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

.changeset/twelve-comics-enjoy.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
Force Vite to use HTTP/1 in dev mode, so `dev --https` works again

packages/kit/src/core/dev/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,14 @@ export async function dev({ cwd, port, host, https, config }) {
8585
merged_config.server.https = https;
8686
}
8787

88+
// by default, when enabling HTTPS in Vite, it also enables HTTP/2
89+
// however, node-fetch's Request implementation does not like the HTTP/2 headers
90+
// we set a no-op proxy config to force Vite to downgrade to TLS-only
91+
// see https://vitejs.dev/config/#server-https
92+
if (merged_config.server.https && !merged_config.server.proxy) {
93+
merged_config.server.proxy = {};
94+
}
95+
8896
if (port) {
8997
merged_config.server.port = port;
9098
}

0 commit comments

Comments
 (0)