Fix missing exports condition for vite-plugin-svelte
Describe the bug
When building a svelte application using yesvelte library, the following warning is raised:
PM [vite-plugin-svelte] WARNING: The following packages have a svelte field in their package.json but no exports condition for svelte.
[email protected]
Please see https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#missing-exports-condition for details.
As per the referenced FAQ link, using the svelte field in package.json to point at .svelte source files is deprecated and you must use a svelte export condition. vite-plugin-svelte 3 still resolves it as a fallback, but in a future major release this is going to be removed and without exports condition resolving the library is going to fail.
Example:
// package.json
"files": ["dist"],
"svelte": "dist/index.js",
+ "exports": {
+ ".": {
+ "svelte": "./dist/index.js"
+ }
}
You can also add individual exports of .svelte files in the exports map which gives users a choice to also use deep imports. See the faq about vite and prebundling why they can be useful at times.
Library authors are highly encouraged to update their packages to add the new exports condition as outlined above. Check out svelte-package which already supports it.
For backwards compatibility, you can keep the svelte field in addition to the exports condition. But make sure that both always resolve to the same files.