WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit d98e41d

Browse files
authored
fix(upgrade): do not use cache when getting nuxt version (#1002)
1 parent 5ed6a60 commit d98e41d

File tree

6 files changed

+23
-31
lines changed

6 files changed

+23
-31
lines changed

packages/nuxi/src/commands/module/_utils.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { parseINI } from 'confbox'
22
import { $fetch } from 'ofetch'
3-
import { readPackageJSON } from 'pkg-types'
4-
import { coerce, satisfies } from 'semver'
3+
import { satisfies } from 'semver'
54

65
export const categories = [
76
'Analytics',
@@ -116,16 +115,6 @@ export function checkNuxtCompatibility(
116115
})
117116
}
118117

119-
export async function getNuxtVersion(cwd: string) {
120-
const nuxtPkg = await readPackageJSON('nuxt', { url: cwd }).catch(() => null)
121-
if (nuxtPkg) {
122-
return nuxtPkg.version!
123-
}
124-
const pkg = await readPackageJSON(cwd)
125-
const pkgDep = pkg?.dependencies?.nuxt || pkg?.devDependencies?.nuxt
126-
return (pkgDep && coerce(pkgDep)?.version) || '3.0.0'
127-
}
128-
129118
export function getRegistryFromContent(content: string, scope: string | null) {
130119
try {
131120
const npmConfig = parseINI<Record<string, string | undefined>>(content)

packages/nuxi/src/commands/module/add.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ import { joinURL } from 'ufo'
1919

2020
import { runCommand } from '../../run'
2121
import { logger } from '../../utils/logger'
22+
import { getNuxtVersion } from '../../utils/versions'
2223
import { cwdArgs, logLevelArgs } from '../_shared'
23-
import { checkNuxtCompatibility, fetchModules, getNuxtVersion, getRegistryFromContent } from './_utils'
24+
import { checkNuxtCompatibility, fetchModules, getRegistryFromContent } from './_utils'
2425

2526
interface RegistryMeta {
2627
registry: string

packages/nuxi/src/commands/module/search.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import Fuse from 'fuse.js'
44
import { kebabCase, upperFirst } from 'scule'
55

66
import { logger } from '../../utils/logger'
7+
import { getNuxtVersion } from '../../utils/versions'
78
import { cwdArgs } from '../_shared'
8-
import { checkNuxtCompatibility, fetchModules, getNuxtVersion } from './_utils'
9+
import { checkNuxtCompatibility, fetchModules } from './_utils'
910

1011
const { format: formatNumber } = Intl.NumberFormat('en-GB', {
1112
notation: 'compact',

packages/nuxi/src/commands/upgrade.ts

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,9 @@ import { loadKit } from '../utils/kit'
1313
import { logger } from '../utils/logger'
1414
import { cleanupNuxtDirs, nuxtVersionToGitIdentifier } from '../utils/nuxt'
1515
import { getPackageManagerVersion } from '../utils/packageManagers'
16+
import { getNuxtVersion } from '../utils/versions'
1617
import { cwdArgs, legacyRootDirArgs, logLevelArgs } from './_shared'
1718

18-
async function getNuxtVersion(path: string): Promise<string | null> {
19-
try {
20-
const pkg = await readPackageJSON('nuxt', { url: path })
21-
if (!pkg.version) {
22-
logger.warn('Cannot find any installed Nuxt versions in ', path)
23-
}
24-
return pkg.version || null
25-
}
26-
catch {
27-
return null
28-
}
29-
}
30-
3119
function checkNuxtDependencyType(pkg: PackageJson): 'dependencies' | 'devDependencies' {
3220
if (pkg.dependencies?.nuxt) {
3321
return 'dependencies'
@@ -109,7 +97,7 @@ export default defineCommand({
10997
logger.info('Package manager:', packageManagerName, packageManagerVersion)
11098

11199
// Check currently installed Nuxt version
112-
const currentVersion = (await getNuxtVersion(cwd)) || '[unknown]'
100+
const currentVersion = (await getNuxtVersion(cwd, false)) || '[unknown]'
113101
logger.info('Current Nuxt version:', currentVersion)
114102

115103
const pkg = await readPackageJSON(cwd).catch(() => null)
@@ -195,15 +183,15 @@ export default defineCommand({
195183
await cleanupNuxtDirs(cwd, buildDir)
196184

197185
// Check installed Nuxt version again
198-
const upgradedVersion = (await getNuxtVersion(cwd)) || '[unknown]'
186+
const upgradedVersion = (await getNuxtVersion(cwd, false)) || '[unknown]'
199187
logger.info('Upgraded Nuxt version:', upgradedVersion)
200188

201189
if (upgradedVersion === '[unknown]') {
202190
return
203191
}
204192

205193
if (upgradedVersion === currentVersion) {
206-
logger.success('You\'re already using the latest version of Nuxt.')
194+
logger.success('You\'re using the latest version of Nuxt.')
207195
}
208196
else {
209197
logger.success(
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { readPackageJSON } from 'pkg-types'
2+
import { coerce } from 'semver'
3+
4+
export async function getNuxtVersion(cwd: string, cache = true) {
5+
const nuxtPkg = await readPackageJSON('nuxt', { url: cwd, try: true, cache })
6+
if (nuxtPkg) {
7+
return nuxtPkg.version!
8+
}
9+
const pkg = await readPackageJSON(cwd)
10+
const pkgDep = pkg?.dependencies?.nuxt || pkg?.devDependencies?.nuxt
11+
return (pkgDep && coerce(pkgDep)?.version) || '3.0.0'
12+
}

packages/nuxi/test/unit/commands/module/add.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { beforeAll, describe, expect, it, vi } from 'vitest'
33
import commands from '../../../../src/commands/module'
44
import * as utils from '../../../../src/commands/module/_utils'
55
import * as runCommands from '../../../../src/run'
6+
import * as versions from '../../../../src/utils/versions'
67

78
const updateConfig = vi.fn(() => Promise.resolve())
89
const addDependency = vi.fn(() => Promise.resolve())
@@ -80,7 +81,7 @@ describe('module add', () => {
8081
})
8182
applyMocks()
8283
vi.spyOn(runCommands, 'runCommand').mockImplementation(vi.fn())
83-
vi.spyOn(utils, 'getNuxtVersion').mockResolvedValue('3.0.0')
84+
vi.spyOn(versions, 'getNuxtVersion').mockResolvedValue('3.0.0')
8485
vi.spyOn(utils, 'fetchModules').mockResolvedValue([
8586
{
8687
name: 'content',

0 commit comments

Comments
 (0)