diff options
-rw-r--r-- | .changeset/violet-coats-fail.md | 5 | ||||
-rw-r--r-- | packages/astro/src/cli/add/index.ts | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/.changeset/violet-coats-fail.md b/.changeset/violet-coats-fail.md new file mode 100644 index 000000000..0319b363f --- /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 e452f08d6..aa4b4bba8 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<string> { 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}`; } |