From 101ac8e4293fff98e6e66d838c6687d470e34484 Mon Sep 17 00:00:00 2001 From: polvallverdu Date: Tue, 20 Jan 2026 15:21:42 +0100 Subject: [PATCH] feat(vite): allow setting custom cwd path --- .changeset/little-wombats-cover.md | 5 +++++ packages/kit/src/exports/vite/index.js | 13 +++++++------ packages/kit/types/index.d.ts | 4 +++- 3 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 .changeset/little-wombats-cover.md diff --git a/.changeset/little-wombats-cover.md b/.changeset/little-wombats-cover.md new file mode 100644 index 000000000000..2638b89b4d92 --- /dev/null +++ b/.changeset/little-wombats-cover.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +feat(vite): allow setting custom cwd path diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index ec28e0271384..6f676f59182e 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -131,10 +131,11 @@ const warning_preprocessor = { /** * Returns the SvelteKit Vite plugins. + * @param {{ cwd?: string }} [options] * @returns {Promise} */ -export async function sveltekit() { - const svelte_config = await load_config(); +export async function sveltekit({ cwd } = {}) { + const svelte_config = await load_config({ cwd }); /** @type {import('@sveltejs/vite-plugin-svelte').Options['preprocess']} */ let preprocess = svelte_config.preprocess; @@ -162,7 +163,7 @@ export async function sveltekit() { const { svelte } = await import_peer('@sveltejs/vite-plugin-svelte'); - return [...svelte(vite_plugin_svelte_options), ...(await kit({ svelte_config }))]; + return [...svelte(vite_plugin_svelte_options), ...(await kit({ svelte_config, root: cwd }))]; } // These variables live outside the `kit()` function because it is re-invoked by each Vite build @@ -185,10 +186,10 @@ let build_metadata = undefined; * - https://rollupjs.org/guide/en/#build-hooks * - https://rollupjs.org/guide/en/#output-generation-hooks * - * @param {{ svelte_config: import('types').ValidatedConfig }} options + * @param {{ svelte_config: import('types').ValidatedConfig, root?: string }} options * @return {Promise} */ -async function kit({ svelte_config }) { +async function kit({ svelte_config, root = cwd }) { /** @type {import('vite')} */ const vite = await import_peer('vite'); @@ -276,7 +277,7 @@ async function kit({ svelte_config }) { ...get_config_aliases(kit) ] }, - root: cwd, + root, server: { cors: { preflightContinue: true }, fs: { diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index 30d5e82f91c8..37b062b448ff 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -2861,7 +2861,9 @@ declare module '@sveltejs/kit/vite' { /** * Returns the SvelteKit Vite plugins. * */ - export function sveltekit(): Promise; + export function sveltekit({ cwd }?: { + cwd?: string; + }): Promise; export {}; }