diff --git a/.changeset/violet-coats-fail.md b/.changeset/violet-coats-fail.md new file mode 100644 index 0000000000..0319b363f1 --- /dev/null +++ b/.changeset/violet-coats-fail.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes `astro add` for packages with only prerelease versions diff --git a/packages/astro/src/cli/add/index.ts b/packages/astro/src/cli/add/index.ts index e452f08d68..aa4b4bba83 100644 --- a/packages/astro/src/cli/add/index.ts +++ b/packages/astro/src/cli/add/index.ts @@ -691,9 +691,9 @@ async function convertIntegrationsToInstallSpecifiers( async function resolveRangeToInstallSpecifier(name: string, range: string): Promise { const versions = await fetchPackageVersions(name); if (versions instanceof Error) return name; - // Filter out any prerelease versions + // Filter out any prerelease versions, but fallback if there are no stable versions const stableVersions = versions.filter((v) => !v.includes('-')); - const maxStable = maxSatisfying(stableVersions, range); + const maxStable = maxSatisfying(stableVersions.length !== 0 ? stableVersions : versions, range); return `${name}@^${maxStable}`; }