mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-18 22:02:53 -04:00
fix: update cmd should work normal when set empty string version (#4243)
close #4196
This commit is contained in:
5
.changeset/famous-poets-perform.md
Normal file
5
.changeset/famous-poets-perform.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"pnpm": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Update command should work when there is a dependency with emty version in `devDependencies` [#4196](https://github.com/pnpm/pnpm/issues/4196).
|
||||||
5
.changeset/lemon-pears-invent.md
Normal file
5
.changeset/lemon-pears-invent.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@pnpm/manifest-utils": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix: version set be correct when set empty version
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
},
|
},
|
||||||
"repository": "https://github.com/pnpm/pnpm/blob/master/packages/manifest-utils",
|
"repository": "https://github.com/pnpm/pnpm/blob/master/packages/manifest-utils",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"start": "tsc --watch",
|
||||||
"_test": "jest",
|
"_test": "jest",
|
||||||
"test": "pnpm run compile && pnpm run _test",
|
"test": "pnpm run compile && pnpm run _test",
|
||||||
"lint": "eslint src/**/*.ts test/**/*.ts",
|
"lint": "eslint src/**/*.ts test/**/*.ts",
|
||||||
|
|||||||
@@ -61,5 +61,5 @@ function findSpec (alias: string, manifest: ProjectManifest): string | undefined
|
|||||||
|
|
||||||
export function guessDependencyType (alias: string, manifest: ProjectManifest): DependenciesField | undefined {
|
export function guessDependencyType (alias: string, manifest: ProjectManifest): DependenciesField | undefined {
|
||||||
return DEPENDENCIES_FIELDS
|
return DEPENDENCIES_FIELDS
|
||||||
.find((depField) => Boolean(manifest[depField]?.[alias]))
|
.find((depField) => manifest[depField]?.[alias] === '' || Boolean(manifest[depField]?.[alias]))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import { guessDependencyType } from '@pnpm/manifest-utils'
|
||||||
|
|
||||||
|
test('guessDependencyType()', () => {
|
||||||
|
expect(
|
||||||
|
guessDependencyType('foo', {
|
||||||
|
dependencies: {
|
||||||
|
bar: '1.0.0',
|
||||||
|
},
|
||||||
|
devDependencies: {
|
||||||
|
foo: '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toEqual('devDependencies')
|
||||||
|
|
||||||
|
expect(
|
||||||
|
guessDependencyType('bar', {
|
||||||
|
dependencies: {
|
||||||
|
bar: '1.0.0',
|
||||||
|
},
|
||||||
|
devDependencies: {
|
||||||
|
foo: '1.0.0',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
).toEqual('dependencies')
|
||||||
|
})
|
||||||
@@ -153,3 +153,41 @@ test('update --no-save should not update package.json and pnpm-lock.yaml', async
|
|||||||
expect(lockfile.packages['/peer-a/1.0.1']).toBeTruthy()
|
expect(lockfile.packages['/peer-a/1.0.1']).toBeTruthy()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// fix: https://github.com/pnpm/pnpm/issues/4196
|
||||||
|
test('update should work normal when set empty string version', async () => {
|
||||||
|
await addDistTag({ package: 'peer-a', version: '1.0.1', distTag: 'latest' })
|
||||||
|
await addDistTag({ package: 'peer-c', version: '2.0.0', distTag: 'latest' })
|
||||||
|
await addDistTag({ package: 'pnpm-foo', version: '2.0.0', distTag: 'latest' })
|
||||||
|
|
||||||
|
const project = prepare({
|
||||||
|
dependencies: {
|
||||||
|
'peer-a': '1.0.0',
|
||||||
|
},
|
||||||
|
devDependencies: {
|
||||||
|
'pnpm-foo': '',
|
||||||
|
'peer-c': '',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
await install.handler({
|
||||||
|
...DEFAULT_OPTS,
|
||||||
|
dir: process.cwd(),
|
||||||
|
workspaceDir: process.cwd(),
|
||||||
|
})
|
||||||
|
|
||||||
|
await update.handler({
|
||||||
|
...DEFAULT_OPTS,
|
||||||
|
dir: process.cwd(),
|
||||||
|
latest: true,
|
||||||
|
workspaceDir: process.cwd(),
|
||||||
|
}, ['*'])
|
||||||
|
|
||||||
|
const lockfile = await project.readLockfile()
|
||||||
|
expect(lockfile.packages['/peer-a/1.0.1']).toBeTruthy()
|
||||||
|
expect(lockfile.packages['/peer-c/2.0.0']).toBeTruthy()
|
||||||
|
expect(lockfile.packages['/pnpm-foo/2.0.0']).toBeTruthy()
|
||||||
|
expect(lockfile.dependencies['peer-a']).toEqual('1.0.1')
|
||||||
|
expect(lockfile.devDependencies['pnpm-foo']).toEqual('2.0.0')
|
||||||
|
expect(lockfile.devDependencies['peer-c']).toEqual('2.0.0')
|
||||||
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user