Skip to content

Commit 1208ed6

Browse files
author
Simon Holthausen
committed
[fix] add svelte field when packaging
Several heuristics in Kit/vite-plugin-svelte to tell Vite to mark Svelte packages rely on the "svelte" property. Vite/Rollup/Webpack plugin can all deal with it. Fixes #1959
1 parent 1b799ab commit 1208ed6

File tree

5 files changed

+29
-4
lines changed

5 files changed

+29
-4
lines changed

packages/kit/src/packaging/index.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,27 @@ export async function make_package(config, cwd = process.cwd()) {
104104
}
105105

106106
pkg.exports = { ...generated, ...pkg.exports };
107+
108+
// Several heuristics in Kit/vite-plugin-svelte to tell Vite to mark Svelte packages
109+
// rely on the "svelte" property. Vite/Rollup/Webpack plugin can all deal with it.
110+
// See https://github.com/sveltejs/kit/issues/1959 for more info and related threads.
111+
if (pkg.exports['.']) {
112+
const svelte_export = typeof pkg.exports['.'] === 'string' ? pkg.exports['.'] : undefined;
113+
if (svelte_export) {
114+
pkg.svelte = svelte_export;
115+
} else {
116+
console.warn(
117+
'The "." entry in "exports" is not a string. ' +
118+
'If you set it by hand, please also set one of the options as a "svelte" entry point'
119+
);
120+
}
121+
} else {
122+
console.warn(
123+
'The "." entry in "exports" is not a string. ' +
124+
'If you set it by hand, please also set one of the options as a "svelte" entry point'
125+
);
126+
}
127+
107128
write(path.join(cwd, config.kit.package.dir, 'package.json'), JSON.stringify(pkg, null, ' '));
108129

109130
const whitelist = fs.readdirSync(cwd).filter((file) => {

packages/kit/src/packaging/test/fixtures/emitTypes-false/expected/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88
"./Test.svelte": "./Test.svelte",
99
"./Test2.svelte": "./Test2.svelte",
1010
".": "./index.js"
11-
}
11+
},
12+
"svelte": "./index.js"
1213
}

packages/kit/src/packaging/test/fixtures/files-exclude/expected/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@
88
"./internal": "./internal/index.js",
99
"./Test.svelte": "./Test.svelte",
1010
".": "./index.js"
11-
}
11+
},
12+
"svelte": "./index.js"
1213
}

packages/kit/src/packaging/test/fixtures/javascript/expected/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
"./Test2.svelte": "./Test2.svelte",
1212
"./utils": "./utils.js",
1313
".": "./index.js"
14-
}
14+
},
15+
"svelte": "./index.js"
1516
}

packages/kit/src/packaging/test/fixtures/typescript/expected/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
"./Test2.svelte": "./Test2.svelte",
1010
"./utils": "./utils.js",
1111
".": "./index.js"
12-
}
12+
},
13+
"svelte": "./index.js"
1314
}

0 commit comments

Comments
 (0)