From a711be2a9911c598f8e6320c56927589faf63dd0 Mon Sep 17 00:00:00 2001 From: dominikg Date: Wed, 3 Dec 2025 12:59:56 +0100 Subject: [PATCH 1/4] fix: update from rolldown-vite to vite-8 beta --- .changeset/nine-lizards-design.md | 5 +++++ packages/vite-plugin-svelte/src/plugins/configure.js | 2 +- packages/vite-plugin-svelte/src/plugins/setup-optimizer.js | 4 ++-- packages/vite-plugin-svelte/src/types/compile.d.ts | 2 +- packages/vite-plugin-svelte/src/utils/options.js | 4 ++-- 5 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/nine-lizards-design.md diff --git a/.changeset/nine-lizards-design.md b/.changeset/nine-lizards-design.md new file mode 100644 index 000000000..09a225577 --- /dev/null +++ b/.changeset/nine-lizards-design.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/vite-plugin-svelte': patch +--- + +Update experimental support for rolldown-vite to vite 8 beta diff --git a/packages/vite-plugin-svelte/src/plugins/configure.js b/packages/vite-plugin-svelte/src/plugins/configure.js index b5538b06a..f02a0a728 100644 --- a/packages/vite-plugin-svelte/src/plugins/configure.js +++ b/packages/vite-plugin-svelte/src/plugins/configure.js @@ -24,7 +24,7 @@ const { version: viteVersion, rolldownVersion } = vite; export function configure(api, inlineOptions) { if (rolldownVersion) { log.warn.once( - `!!! Support for rolldown-vite in vite-plugin-svelte is experimental (rolldown: ${rolldownVersion}, vite: ${viteVersion}) !!! + `!!! Support for vite 8 beta in vite-plugin-svelte is experimental (rolldown: ${rolldownVersion}, vite: ${viteVersion}) !!! See https://github.com/sveltejs/vite-plugin-svelte/issues/1143 for a list of known issues and to report feedback.`.replace( /\t+/g, '\t' diff --git a/packages/vite-plugin-svelte/src/plugins/setup-optimizer.js b/packages/vite-plugin-svelte/src/plugins/setup-optimizer.js index 56468a5ac..3b59a922c 100644 --- a/packages/vite-plugin-svelte/src/plugins/setup-optimizer.js +++ b/packages/vite-plugin-svelte/src/plugins/setup-optimizer.js @@ -43,7 +43,7 @@ export function setupOptimizer(api) { // the added plugins are patched in configResolved below if (rolldownVersion) { //@ts-ignore rolldown types not finished - optimizeDeps.rollupOptions = { + optimizeDeps.rolldownOptions = { plugins: [ placeholderRolldownOptimizerPlugin(optimizeSveltePluginName), placeholderRolldownOptimizerPlugin(optimizeSvelteModulePluginName) @@ -65,7 +65,7 @@ export function setupOptimizer(api) { if (rolldownVersion) { const plugins = // @ts-expect-error not typed - optimizeDeps.rollupOptions?.plugins?.filter((p) => + optimizeDeps.rolldownOptions?.plugins?.filter((p) => [optimizeSveltePluginName, optimizeSvelteModulePluginName].includes(p.name) ) ?? []; for (const plugin of plugins) { diff --git a/packages/vite-plugin-svelte/src/types/compile.d.ts b/packages/vite-plugin-svelte/src/types/compile.d.ts index 422a979b6..cb73d9561 100644 --- a/packages/vite-plugin-svelte/src/types/compile.d.ts +++ b/packages/vite-plugin-svelte/src/types/compile.d.ts @@ -21,7 +21,7 @@ export interface Code { map?: any; dependencies?: any[]; hasGlobal?: boolean; - moduleType?: string; //rolldown-vite + moduleType?: string; //vite-8 beta meta?: { vite?: CustomPluginOptionsVite; }; diff --git a/packages/vite-plugin-svelte/src/utils/options.js b/packages/vite-plugin-svelte/src/utils/options.js index c31b4fe88..f099b3188 100644 --- a/packages/vite-plugin-svelte/src/utils/options.js +++ b/packages/vite-plugin-svelte/src/utils/options.js @@ -423,9 +423,9 @@ function validateViteConfig(extraViteConfig, config, options) { if (rolldownVersion && isBuild) { // read user config inlineConst value const inlineConst = - //@ts-ignore optimization only exists in rolldown-vite + //@ts-ignore optimization only exists in vite-8 beta config.build?.rolldownOptions?.optimization?.inlineConst ?? - //@ts-ignore optimization only exists in rolldown-vite + //@ts-ignore optimization only exists in vite-8 beta config.build?.rollupOptions?.optimization?.inlineConst; if (inlineConst === false) { From a4748bb779ef71c7563e8d020ec0bc876e20cb85 Mon Sep 17 00:00:00 2001 From: dominikg Date: Wed, 3 Dec 2025 22:00:26 +0100 Subject: [PATCH 2/4] change ci workflow to use vite 8 beta --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 598c51057..2a5158a08 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,10 +94,10 @@ jobs: os: ubuntu-latest vite: 'baseline' svelte: 'baseline' - # future test with rolldown-vite + # future test with vite-8-beta - node: 24 os: ubuntu-latest - vite: 'rolldown-vite' + vite: '8-beta' svelte: 'current' steps: - uses: actions/checkout@v5 @@ -128,17 +128,17 @@ jobs: run: | pnpm update -r --no-save svelte@5.0.0 pnpm ls svelte - - name: update vite to rolldown-vite - if: matrix.vite == 'rolldown-vite' + - name: update vite to vite-8-beta + if: matrix.vite == '8-beta' run: | - pnpm update -r --no-save vite@npm:rolldown-vite@latest - pnpm ls rolldown-vite + pnpm update -r --no-save vite@^8.0.0-beta.0 + pnpm ls vite - name: install playwright chromium run: pnpm playwright install chromium - name: run tests run: pnpm test - - name: check-types with rolldown-vite - if: matrix.vite == 'rolldown-vite' + - name: check-types with vite-8-beta + if: matrix.vite == '8-beta' run: pnpm check:types - name: archive tests temp directory if: failure() From b5bdb35142abd20f5257f6b0d3ce6894a2fdf5f8 Mon Sep 17 00:00:00 2001 From: dominikg Date: Wed, 3 Dec 2025 22:07:02 +0100 Subject: [PATCH 3/4] adapt testcases for vite 8 beta --- .../e2e-tests/scan-deps/__tests__/scan-deps.spec.ts | 10 ++-------- packages/e2e-tests/testUtils.ts | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/e2e-tests/scan-deps/__tests__/scan-deps.spec.ts b/packages/e2e-tests/scan-deps/__tests__/scan-deps.spec.ts index 581c4dc0b..f719f2de2 100644 --- a/packages/e2e-tests/scan-deps/__tests__/scan-deps.spec.ts +++ b/packages/e2e-tests/scan-deps/__tests__/scan-deps.spec.ts @@ -1,15 +1,9 @@ -import { e2eServer, getText } from '~utils'; +import { getServerErrors, getText } from '~utils'; import { describe, expect, it } from 'vitest'; describe('vite import scan', () => { it('should not fail to discover dependencies exported from script module', async () => { // vite logs an error if scan fails but continues, so validate no errors logged - const errorLogs = e2eServer.logs.server.err.filter( - (line) => - ![ - 'Support for rolldown-vite in vite-plugin-svelte is experimental', - 'See https://github.com/sveltejs/vite-plugin-svelte/issues/1143 for a list of known issues' - ].some((ignore) => line.includes(ignore)) - ); + const errorLogs = getServerErrors(); expect(errorLogs.length, `unexpected errors:\n${errorLogs.join('\n')}`).toBe(0); }); it('should work with exports from module context', async () => { diff --git a/packages/e2e-tests/testUtils.ts b/packages/e2e-tests/testUtils.ts index 349376110..05eb14dd4 100644 --- a/packages/e2e-tests/testUtils.ts +++ b/packages/e2e-tests/testUtils.ts @@ -373,7 +373,7 @@ function filterMessages(arr) { const excludes = []; if (isRolldownVite) { excludes.push( - 'Support for rolldown-vite in vite-plugin-svelte is experimental', + 'Support for vite 8 beta in vite-plugin-svelte is experimental', 'See https://github.com/sveltejs/vite-plugin-svelte/issues/1143' ); } From bb1e56c42bd26c1df0476908dda9312251050183 Mon Sep 17 00:00:00 2001 From: dominikg Date: Wed, 3 Dec 2025 22:27:26 +0100 Subject: [PATCH 4/4] work around sourcemap bug in vite-8 beta --- .../svelte-simple/src/components/Dependency.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/e2e-tests/_test_dependencies/svelte-simple/src/components/Dependency.svelte b/packages/e2e-tests/_test_dependencies/svelte-simple/src/components/Dependency.svelte index 812a159e3..5b2072b65 100644 --- a/packages/e2e-tests/_test_dependencies/svelte-simple/src/components/Dependency.svelte +++ b/packages/e2e-tests/_test_dependencies/svelte-simple/src/components/Dependency.svelte @@ -1,7 +1,9 @@
{label}