Skip to content

Commit 66ae0ed

Browse files
committed
fix: update generated ssr.noExternal config to always include all svelte dependencies to avoid failed svelte deduplication during dev with vite-3
1 parent c8beb2c commit 66ae0ed

File tree

4 files changed

+26
-24
lines changed

4 files changed

+26
-24
lines changed

packages/e2e-tests/kit-node/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
"devDependencies": {
1515
"@sveltejs/adapter-node": "^1.0.0-next.79",
1616
"@sveltejs/kit": "^1.0.0-next.370",
17-
"e2e-test-dep-svelte-api-only": "workspace:*",
18-
"e2e-test-dep-vite-plugins": "workspace:*",
17+
"e2e-test-dep-svelte-api-only": "file:../_test_dependencies/svelte-api-only",
18+
"e2e-test-dep-vite-plugins": "file:../_test_dependencies/vite-plugins",
1919
"svelte": "^3.49.0",
2020
"svelte-check": "^2.8.0",
2121
"svelte-i18n": "^3.4.0",

packages/e2e-tests/kit-node/vite.config.js

-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ const config = {
1212
interval: 100
1313
}
1414
},
15-
ssr: {
16-
// TODO this is needed otherwise tests fail. investigate
17-
noExternal: ['e2e-test-dep-svelte-api-only']
18-
},
1915
plugins: [transformValidation(), sveltekit()]
2016
};
2117

packages/vite-plugin-svelte/src/utils/options.ts

+6-14
Original file line numberDiff line numberDiff line change
@@ -407,23 +407,15 @@ function buildSSROptionsForSvelte(
407407

408408
// add svelte to ssr.noExternal unless it is present in ssr.external
409409
// so we can resolve it with svelte/ssr
410-
if (options.isBuild && config.build?.ssr) {
411-
if (!config.ssr?.external?.includes('svelte')) {
412-
noExternal.push('svelte', /^svelte\//);
413-
}
414-
} else {
415-
// for non-ssr build, we exclude svelte js library deps to make development faster
416-
// and also because vite doesn't handle them properly.
417-
// see https://github.com/sveltejs/vite-plugin-svelte/issues/168
418-
// see https://github.com/vitejs/vite/issues/2579
419-
svelteDeps = svelteDeps.filter((dep) => dep.type === 'component-library');
410+
if (!config.ssr?.external?.includes('svelte')) {
411+
noExternal.push('svelte', /^svelte\//);
420412
}
421413

422-
// add svelte dependencies to ssr.noExternal unless present in ssr.external or optimizeDeps.include
414+
// add svelte dependencies to ssr.noExternal unless present in ssr.external
423415
noExternal.push(
424-
...Array.from(new Set(svelteDeps.map((s) => s.name))).filter((x) => {
425-
return !config.ssr?.external?.includes(x) && !config.optimizeDeps?.include?.includes(x);
426-
})
416+
...Array.from(new Set(svelteDeps.map((s) => s.name))).filter(
417+
(x) => !config.ssr?.external?.includes(x)
418+
)
427419
);
428420
const ssr = {
429421
noExternal,

pnpm-lock.yaml

+18-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)