Skip to content

Conversation

jycouet
Copy link
Contributor

@jycouet jycouet commented Sep 8, 2025

Closes: #687


# create an empty project
pnpm build && rm -rf jyc && node ./packages/cli/dist/bin.js create jyc --template minimal --types ts --no-install --no-add-ons

# add devtools-json (install prompt will come)
node ./packages/cli/dist/bin.js add -C jyc --no-git-check devtools-json

# add devtools-json again, (install prompt will not show)
node ./packages/cli/dist/bin.js add -C jyc --no-git-check devtools-json

Copy link

changeset-bot bot commented Sep 8, 2025

🦋 Changeset detected

Latest commit: d941540

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
sv Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

pkg-pr-new bot commented Sep 8, 2025

Open in StackBlitz

npx https://pkg.pr.new/sveltejs/cli/sv@696
npx https://pkg.pr.new/sveltejs/cli/svelte-migrate@696

commit: d941540

Comment on lines +60 to +65
const checkInstallNeeded = (atLeastVersion: string, version: string | undefined) => {
if (!version) return true;
const atLeastVersionStripped = atLeastVersion.replace('^', '');
const versionStripped = version.replace('^', '');
return !isVersionAtLeast(versionStripped, atLeastVersionStripped);
};
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think we may be doing too much with the inclusion of version checking. dependency versions can get very complicated with tons of edge-cases, so i'm not sure if this is really worth the effort. (note: we can get away with it with @types/node since we're targeting a very specific dependency version that we'll always know the shape/type of. we don't really have that guarantee with other 3rd party deps)

perhaps we should just show the install prompt only if there are any dependencies to be installed? although, im not sure how useful that'd be since almost every add-on tends to add some sort of new dependency

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very complicated with tons of edge-cases

Don't tell me 😅, spent hours there before.


The idea is that checkInstallNeeded (and isVersionAtLeast under), do it's best for simple case, and if not will fallback with prompting. So I would say that it's helping "normal" cases and fallback to todays way.

I would totally see "Community Add-On" for scaffolding code (with a dep).


But you are already the second one saying that it might not worth the effort. (It's good to slow down my ideas from time to time :p)
I still think it's a good addition as the fallback is like today. But yes, it's a bit of code, maintenance, surface, ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

install deps step, only if needed
2 participants