mirror of
https://github.com/pnpm/pnpm.git
synced 2026-01-08 15:08:27 -05:00
committed by
Zoltan Kochan
parent
d54043ee4f
commit
fcdad632f0
5
.changeset/good-rats-type.md
Normal file
5
.changeset/good-rats-type.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/constants": minor
|
||||
---
|
||||
|
||||
Bump lockfile version to 5.2
|
||||
5
.changeset/metal-cycles-cheat.md
Normal file
5
.changeset/metal-cycles-cheat.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/resolve-dependencies": minor
|
||||
---
|
||||
|
||||
When some of the dependencies of a package have the package as a peer depenendency, don't make the dependency a peer depenendency of itself.
|
||||
@@ -1,5 +1,5 @@
|
||||
export const WANTED_LOCKFILE = 'pnpm-lock.yaml'
|
||||
export const LOCKFILE_VERSION = 5.1
|
||||
export const LOCKFILE_VERSION = 5.2
|
||||
|
||||
export const ENGINE_NAME = `${process.platform}-${process.arch}-node-${process.version.split('.')[0]}`
|
||||
export const LAYOUT_VERSION = 4
|
||||
|
||||
@@ -73,10 +73,10 @@ export type DependenciesTreeNode<T> = {
|
||||
children: (() => ChildrenMap) | ChildrenMap
|
||||
installable: boolean
|
||||
} & ({
|
||||
resolvedPackage: T & { version: string }
|
||||
resolvedPackage: T & { name: string, version: string }
|
||||
depth: number
|
||||
} | {
|
||||
resolvedPackage: { version: string }
|
||||
resolvedPackage: { name: string, version: string }
|
||||
depth: -1
|
||||
})
|
||||
|
||||
@@ -304,6 +304,7 @@ async function resolveDependenciesOfDependency (
|
||||
depth: -1,
|
||||
installable: true,
|
||||
resolvedPackage: {
|
||||
name: resolveDependencyResult.name,
|
||||
version: resolveDependencyResult.version,
|
||||
},
|
||||
}
|
||||
|
||||
@@ -216,6 +216,7 @@ function resolvePeersOfNode<T extends PartialResolvedPackage> (
|
||||
})
|
||||
|
||||
const allResolvedPeers = Object.assign(unknownResolvedPeersOfChildren, resolvedPeers)
|
||||
delete allResolvedPeers[node.resolvedPackage.name]
|
||||
const allMissingPeers = Array.from(new Set([...missingPeersOfChildren, ...missingPeers]))
|
||||
|
||||
let modules: string
|
||||
|
||||
@@ -100,10 +100,10 @@ test('resolve peer dependencies of cyclic dependencies', () => {
|
||||
expect(Object.keys(dependenciesGraph)).toStrictEqual([
|
||||
'foo/1.0.0_qar@1.0.0+zoo@1.0.0',
|
||||
'bar/1.0.0_foo@1.0.0+zoo@1.0.0',
|
||||
'zoo/1.0.0_qar@1.0.0+zoo@1.0.0',
|
||||
'zoo/1.0.0_qar@1.0.0',
|
||||
'zoo/1.0.0_bar@1.0.0+foo@1.0.0+qar@1.0.0',
|
||||
'bar/1.0.0_bar@1.0.0+foo@1.0.0',
|
||||
'foo/1.0.0_foo@1.0.0',
|
||||
'bar/1.0.0_foo@1.0.0',
|
||||
'foo/1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
|
||||
@@ -668,7 +668,7 @@ test('peer dependency is resolved from parent package', async (t) => {
|
||||
const lockfile = await readYamlFile<Lockfile>(WANTED_LOCKFILE)
|
||||
t.deepEqual(Object.keys(lockfile.packages ?? {}), [
|
||||
'/has-tango-as-peer-dep/1.0.0_tango@1.0.0',
|
||||
'/tango/1.0.0_tango@1.0.0',
|
||||
'/tango/1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -698,7 +698,7 @@ test('transitive peerDependencies field does not break the lockfile on subsequen
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(WANTED_LOCKFILE)
|
||||
|
||||
t.deepEqual(Object.keys(lockfile.packages!['/most/1.7.3_most@1.7.3'].dependencies!), [
|
||||
t.deepEqual(Object.keys(lockfile.packages!['/most/1.7.3'].dependencies!), [
|
||||
'@most/multicast',
|
||||
'@most/prelude',
|
||||
'symbol-observable',
|
||||
|
||||
Reference in New Issue
Block a user