fix: only pnpm install should fail on peer dep issues (#4596)

close #4577
This commit is contained in:
Zoltan Kochan
2022-04-22 12:38:30 +03:00
committed by GitHub
parent 6bbb7b1d26
commit c38feff08f
3 changed files with 17 additions and 2 deletions

View File

@@ -0,0 +1,5 @@
---
"@pnpm/core": patch
---
Only `pnpm install` should fail on peer dependency issues.

View File

@@ -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,

View File

@@ -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
}