diff --git a/.changeset/real-cups-scream.md b/.changeset/real-cups-scream.md new file mode 100644 index 000000000..b0de80359 --- /dev/null +++ b/.changeset/real-cups-scream.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/vite-plugin-svelte': patch +--- + +log known-issues link when using rolldown-vite diff --git a/packages/e2e-tests/kit-node/__tests__/kit.spec.ts b/packages/e2e-tests/kit-node/__tests__/kit.spec.ts index b6f6b4638..7e57ad2de 100644 --- a/packages/e2e-tests/kit-node/__tests__/kit.spec.ts +++ b/packages/e2e-tests/kit-node/__tests__/kit.spec.ts @@ -16,7 +16,14 @@ import { import glob from 'tiny-glob'; import path from 'node:path'; -import { defaultClientConditions, defaultClientMainFields } from 'vite'; +import { env } from 'node:process'; +import * as vite from 'vite'; +const { + defaultClientConditions, + defaultClientMainFields, + //@ts-expect-error not typed in vite + rolldownVersion +} = vite; import { describe, expect, it } from 'vitest'; describe('kit-node', () => { @@ -93,18 +100,23 @@ describe('kit-node', () => { }); if (isBuild) { - it('should not include dynamic import from onmount in ssr output', async () => { - const ssrManifest = JSON.parse( - readFileContent('.svelte-kit/output/server/.vite/manifest.json') - ); - const serverFilesSrc = Object.values(ssrManifest) - .filter((e) => !!e.src) - .map((e) => e.src); - const includesClientOnlyModule = serverFilesSrc.some((file: string) => - file.includes('client-only-module') - ); - expect(includesClientOnlyModule).toBe(false); - }); + // this is known to fail, skip the test in our own CI but keep it in ecosystem-ci so that rolldown-vite-ecosystem-ci still gets this fail + // TODO remove skip once fixed + it.skipIf(rolldownVersion && !env.ECOSYSTEM_CI)( + 'should not include dynamic import from onMount in ssr output', + async () => { + const ssrManifest = JSON.parse( + readFileContent('.svelte-kit/output/server/.vite/manifest.json') + ); + const serverFilesSrc = Object.values(ssrManifest) + .filter((e) => !!e.src) + .map((e) => e.src); + const includesClientOnlyModule = serverFilesSrc.some((file: string) => + file.includes('client-only-module') + ); + expect(includesClientOnlyModule).toBe(false); + } + ); it('should include dynamic import from onmount in client output', async () => { const clientManifest = JSON.parse( readFileContent('.svelte-kit/output/client/.vite/manifest.json') 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 8a226b6c9..581c4dc0b 100644 --- a/packages/e2e-tests/scan-deps/__tests__/scan-deps.spec.ts +++ b/packages/e2e-tests/scan-deps/__tests__/scan-deps.spec.ts @@ -4,7 +4,11 @@ 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) => !line.includes('Support for rolldown-vite in vite-plugin-svelte is experimental') + (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)) ); expect(errorLogs.length, `unexpected errors:\n${errorLogs.join('\n')}`).toBe(0); }); diff --git a/packages/vite-plugin-svelte/src/index.js b/packages/vite-plugin-svelte/src/index.js index 68c9a4a5d..f0ecd1fc1 100644 --- a/packages/vite-plugin-svelte/src/index.js +++ b/packages/vite-plugin-svelte/src/index.js @@ -40,7 +40,11 @@ export function svelte(inlineOptions) { } if (rolldownVersion) { log.warn.once( - `!!! Support for rolldown-vite in vite-plugin-svelte is experimental (rolldown: ${rolldownVersion}, vite: ${viteVersion}) !!!` + `!!! Support for rolldown-vite 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' + ) ); }