diff --git a/.changeset/twelve-comics-enjoy.md b/.changeset/twelve-comics-enjoy.md new file mode 100644 index 000000000000..6322bcfd6aa9 --- /dev/null +++ b/.changeset/twelve-comics-enjoy.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +Force Vite to use HTTP/1 in dev mode, so `dev --https` works again diff --git a/packages/kit/src/core/dev/index.js b/packages/kit/src/core/dev/index.js index 3bcd1a9b1b54..a1e9a948e20b 100644 --- a/packages/kit/src/core/dev/index.js +++ b/packages/kit/src/core/dev/index.js @@ -85,6 +85,14 @@ export async function dev({ cwd, port, host, https, config }) { merged_config.server.https = https; } + // by default, when enabling HTTPS in Vite, it also enables HTTP/2 + // however, node-fetch's Request implementation does not like the HTTP/2 headers + // we set a no-op proxy config to force Vite to downgrade to TLS-only + // see https://vitejs.dev/config/#server-https + if (merged_config.server.https && !merged_config.server.proxy) { + merged_config.server.proxy = {}; + } + if (port) { merged_config.server.port = port; }