tonyketcham / p5-svelte

Easily add p5 sketches to a Svelte project 🍛 🌱
https://p5-svelte.netlify.app
MIT License
177 stars 7 forks source link

Deprecated package.json svelte field #371

Open wh0am1-dev opened 8 months ago

wh0am1-dev commented 8 months ago

Deprecated package.json svelte field

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.

https://github.com/sveltejs/vite-plugin-svelte/blob/main/docs/faq.md#missing-exports-condition

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.

Repro steps

Steps to reproduce the behavior:

  1. Scaffold a project with sveltekit@latest
  2. Install p5-svelte@latest
  3. Run npm run dev

Expected behavior

There's no warning about something that's gonna be deprecated in the future... 👀

Screenshot

WindowsTerminal_nFWAYqNYoP

Desktop