mirror of
https://github.com/pnpm/pnpm.git
synced 2026-04-10 18:18:56 -04:00
fix: only pnpm install should fail on peer dep issues (#4596)
close #4577
This commit is contained in:
5
.changeset/slow-laws-cheat.md
Normal file
5
.changeset/slow-laws-cheat.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/core": patch
|
||||
---
|
||||
|
||||
Only `pnpm install` should fail on peer dependency issues.
|
||||
@@ -164,6 +164,7 @@ export async function mutateModules (
|
||||
}
|
||||
|
||||
const installsOnly = projects.every((project) => project.mutation === 'install')
|
||||
if (!installsOnly) opts.strictPeerDependencies = false
|
||||
opts['forceNewModules'] = installsOnly
|
||||
const rootProjectManifest = projects.find(({ rootDir }) => rootDir === opts.lockfileDir)?.manifest ??
|
||||
// When running install/update on a subset of projects, the root project might not be included,
|
||||
|
||||
@@ -198,7 +198,11 @@ test('strict-peer-dependencies: error is thrown when cannot resolve peer depende
|
||||
|
||||
let err!: PeerDependencyIssuesError
|
||||
try {
|
||||
await addDependenciesToPackage({}, ['ajv-keywords@1.5.0'], await testDefaults({ strictPeerDependencies: true }))
|
||||
await install({
|
||||
dependencies: {
|
||||
'ajv-keywords': '1.5.0',
|
||||
},
|
||||
}, await testDefaults({ strictPeerDependencies: true }))
|
||||
} catch (_err: any) { // eslint-disable-line
|
||||
err = _err
|
||||
}
|
||||
@@ -322,7 +326,12 @@ test('strict-peer-dependencies: error is thrown when bad version of resolved pee
|
||||
|
||||
let err!: PeerDependencyIssuesError
|
||||
try {
|
||||
await addDependenciesToPackage({}, ['abc-grand-parent-without-c', 'peer-c@2'], await testDefaults({ strictPeerDependencies: true }))
|
||||
await install({
|
||||
dependencies: {
|
||||
'abc-grand-parent-without-c': '1.0.0',
|
||||
'peer-c': '2',
|
||||
},
|
||||
}, await testDefaults({ strictPeerDependencies: true }))
|
||||
} catch (_err: any) { // eslint-disable-line
|
||||
err = _err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user