Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/old-peaches-refuse.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@sveltejs/vite-plugin-svelte': patch
---

fix: crawl local workspace private packages devDependencies for generating vite config ssr.noExternal
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"version": "1.0.0",
"private": true,
"name": "e2e-test-dep-svelte-nested-workspace-devdep",
"svelte": "src/index.js",
"main": "src/index.js",
"type": "module",
"files": [
"src"
],
"exports": {
"./package.json": "./package.json",
".": {
"import": {
"svelte": "./src/index.js"
}
}
},
"devDependencies": {
"e2e-test-dep-svelte-simple": "workspace:*",
"e2e-test-dep-cjs-and-esm": "workspace:*",
"e2e-test-dep-scss-only": "workspace:*"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<script>
export let id = 'id';
export let message = '';
import { cjs_and_esm } from 'e2e-test-dep-cjs-and-esm';
import 'e2e-test-dep-scss-only';
</script>

<div {id}>{message}</div>
<div id="cjs-and-esm">{cjs_and_esm()}</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
import Message from './components/Message.svelte';
export { Message };
24 changes: 21 additions & 3 deletions packages/e2e-tests/kit-node/__tests__/kit.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,10 @@ describe('kit-node', () => {
'cli-color',
'tiny-glob',
'cookie',
'set-cookie-parser'
'set-cookie-parser',
'e2e-test-dep-cjs-and-esm',
'e2e-test-dep-cjs-only',
'e2e-test-dep-scss-only'
]
: [],
`ssr.external in ${filename}`
Expand All @@ -307,13 +310,22 @@ describe('kit-node', () => {
'esm-env', // first added by svelte-kit
'esm-env', // second added by vite-plugin-svelte
'@sveltejs/kit',
'@sveltejs/adapter-node'
'@sveltejs/adapter-node',
'e2e-test-dep-svelte-nested-workspace-devdep',
'e2e-test-dep-svelte-simple'
],
`ssr.noExternal in ${filename}`
);
const expectedExcludes = ['@sveltejs/kit', '$app', '$env'];
if (!isServe) {
expectedExcludes.push(
'e2e-test-dep-svelte-nested-workspace-devdep',
'e2e-test-dep-svelte-simple'
);
}
expectArrayEqual(
config.optimizeDeps.exclude,
['@sveltejs/kit', '$app', '$env'],
expectedExcludes,
`optimizeDeps.exclude in ${filename}`
);
let expectedIncludes = [
Expand Down Expand Up @@ -345,6 +357,12 @@ describe('kit-node', () => {
(item) => !(isServe && item.startsWith('svelte-i18n >'))
);

if (!isServe) {
expectedIncludes.push(
'e2e-test-dep-svelte-nested-workspace-devdep > e2e-test-dep-svelte-simple > e2e-test-dep-cjs-only'
);
}

expectArrayEqual(
config.optimizeDeps.include,
expectedIncludes,
Expand Down
1 change: 1 addition & 0 deletions packages/e2e-tests/kit-node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"@sveltejs/vite-plugin-svelte": "workspace:^",
"e2e-test-dep-svelte-api-only": "file:../_test_dependencies/svelte-api-only",
"e2e-test-dep-vite-plugins": "file:../_test_dependencies/vite-plugins",
"e2e-test-dep-svelte-nested-workspace-devdep": "workspace:*",
"svelte": "^5.34.9",
"svelte-check": "^4.2.2",
"svelte-i18n": "^4.0.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/vite-plugin-svelte/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
"deepmerge": "^4.3.1",
"kleur": "^4.1.5",
"magic-string": "^0.30.17",
"vitefu": "^1.0.7"
"vitefu": "^1.1.0"
},
"peerDependencies": {
"svelte": "^5.0.0",
Expand Down
4 changes: 3 additions & 1 deletion packages/vite-plugin-svelte/src/utils/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ const {
defaultServerMainFields,
defaultClientConditions,
defaultServerConditions,
normalizePath
normalizePath,
searchForWorkspaceRoot
} = vite;
import { log } from './log.js';
import { loadSvelteConfig } from './load-svelte-config.js';
Expand Down Expand Up @@ -429,6 +430,7 @@ async function buildExtraConfigForDependencies(options, config) {
const packagesWithoutSvelteExportsCondition = new Set();
const depsConfig = await crawlFrameworkPkgs({
root: options.root,
workspaceRoot: searchForWorkspaceRoot(options.root),
isBuild: options.isBuild,
viteUserConfig: config,
isFrameworkPkgByJson(pkgJson) {
Expand Down
31 changes: 29 additions & 2 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading