diff --git a/packages/nuxi/src/commands/upgrade.ts b/packages/nuxi/src/commands/upgrade.ts index 796d9261fd5..d2e8329bf97 100644 --- a/packages/nuxi/src/commands/upgrade.ts +++ b/packages/nuxi/src/commands/upgrade.ts @@ -5,7 +5,7 @@ import { resolve } from 'pathe' import { resolveModule } from '../utils/cjs' import { getPackageManager, packageManagerLocks } from '../utils/packageManagers' import { rmRecursive, touchFile } from '../utils/fs' -import { cleanupNuxtDirs } from '../utils/nuxt' +import { cleanupNuxtDirs, nuxtVersionToGitIdentifier } from '../utils/nuxt' import { defineNuxtCommand } from './index' async function getNuxtVersion (paths: string | string[]): Promise { @@ -66,8 +66,8 @@ export default defineNuxtCommand({ consola.success('You\'re already using the latest version of nuxt.') } else { consola.success('Successfully upgraded nuxt from', currentVersion, 'to', upgradedVersion) - const commitA = currentVersion.split('.').pop() - const commitB = upgradedVersion.split('.').pop() + const commitA = nuxtVersionToGitIdentifier(currentVersion) + const commitB = nuxtVersionToGitIdentifier(upgradedVersion) if (commitA && commitB) { consola.info('Changelog:', `https://github.com/nuxt/framework/compare/${commitA}...${commitB}`) } diff --git a/packages/nuxi/src/utils/nuxt.ts b/packages/nuxi/src/utils/nuxt.ts index 12f7c452c0f..d24a7c89518 100644 --- a/packages/nuxi/src/utils/nuxt.ts +++ b/packages/nuxi/src/utils/nuxt.ts @@ -27,6 +27,16 @@ export async function cleanupNuxtDirs (rootDir: string) { ].map(dir => resolve(rootDir, dir))) } +export function nuxtVersionToGitIdentifier (version: string) { + // match the git identifier in the release, for example: 3.0.0-rc.8-27677607.a3a8706 + const id = /\.([0-9a-f]{7})$/.exec(version) + if (id?.[1]) { + return id[1] + } + // match github tag, for example 3.0.0-rc.8 + return `v${version}` +} + export function resolveNuxtManifest (nuxt: Nuxt): NuxtProjectManifest { const manifest: NuxtProjectManifest = { _hash: null,