Reputation: 3
I am trying to connect to a HTTPS express server set up like so:
const https = require('https')
const key = fs.readFileSync('./cert/key.pem')
const cert = fs.readFileSync('./cert/cert.pem')
const server = https.createServer({key: key, cert: cert}, app)
I then configure vite.config.js to include the following:
export default defineConfig({
plugins: [sveltekit()],
server: {
https: {
key: fs.readFileSync(`${__dirname}/../server/cert/key.pem`),
cert: fs.readFileSync(`${__dirname}/../server/cert/cert.pem`)
}
}
});
However, whenever I try to connect to the server on https://localhost:5173, I get the following error:
TypeError: Headers.append: ":method" is an invalid header name.
at webidl.errors.exception (node:internal/deps/undici/undici:1635:14)
at webidl.errors.invalidArgument (node:internal/deps/undici/undici:1646:28)
at appendHeader (node:internal/deps/undici/undici:2052:29)
at fill (node:internal/deps/undici/undici:2038:11)
at new Request (node:internal/deps/undici/undici:6151:13)
at getRequest (file:///Users/jackgoodman/Desktop/pbbg/client/node_modules/@sveltejs/kit/src/exports/node/index.js:101:9)
at file:///Users/jackgoodman/Desktop/pbbg/client/node_modules/@sveltejs/kit/src/exports/vite/dev/index.js:475:27
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
I have scoured the entire internet and nothing seems to be posted on this error - I have no clue what this is referring to and how it could at all be related to the https server. I'm running node v20.10.0 and the latest version of SvelteKit.
Thank you!
export async function getRequest({ request, base, bodySizeLimit }) {
return new Request(base + request.url, {
// @ts-expect-error
duplex: 'half',
method: request.method,
headers: /** @type {Record<string, string>} */ (request.headers),
body: get_raw_body(request, bodySizeLimit)
});
}
Upvotes: 0
Views: 2284
Reputation: 1
I was having the same problem by using Node v21.4.0
.
I know it's not a fix, but I tried running nvm use 19.1.0
and it should work.
Upvotes: 0
Reputation: 41
It might be a bug with SvelteKit 2. I have opened an issue on GitHub: https://github.com/sveltejs/kit/issues/11365. There is a work around that you can try for now. In your vite.config.ts:
import { sveltekit } from '@sveltejs/kit/vite';
import basicSsl from '@vitejs/plugin-basic-ssl'
import { defineConfig } from 'vite';
export default defineConfig({
server: {
proxy: {}
},
plugins: [basicSsl(), sveltekit()]
});
Upvotes: 4