Skip to content

strict-peer-dependencies in combination with pnpm.peerDependencyRules.allowAny suppresses error message but exit code is 1 #8382

@peterhirn

Description

@peterhirn

Verify latest release

  • I verified that the issue exists in the latest pnpm release

pnpm version

v9.6

Which area(s) of pnpm are affected? (leave empty if unsure)

CLI

Link to the code that reproduces this issue or a replay of the bug

No response

Reproduction steps

.npmrc

strict-peer-dependencies=true
auto-install-peers=false
resolution-mode=highest
save-prefix=''
save-workspace-protocol=rolling

package.json

{
  "type": "module",
  "dependencies": {
    "drizzle-orm": "0.32.1"
  },
  "devDependencies": {
    "vinxi": "0.4.1"
  },
  "pnpm": {
    "peerDependencyRules": {
      "allowAny": [
        "drizzle-orm"
      ]
    }
  },
  "engines": {
    "node": "22.5.1"
  },
  "packageManager": "pnpm@9.6.0"
}

Run pnpm i

 WARN  7 deprecated subdependencies found: are-we-there-yet@2.0.0, gauge@3.0.2, glob@7.2.3, glob@8.1.0, inflight@1.0.6, npmlog@5.0.1, rimraf@3.0.2
Packages: +424
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 493, reused 424, downloaded 0, added 424, done

dependencies:
+ drizzle-orm 0.32.1

devDependencies:
+ vinxi 0.4.1

No error messages but exit code is 1

Describe the Bug

I want to use strict-peer-dependencies for all packages but add some exceptions via pnpm.peerDependencyRules.allowAny.

The current behavior is (see above) to only suppress the peer dependency error message but still exit with code 1. This doesn't work for eg. Renovate.

Expected Behavior

Error messages and exit codes should be consistent. In this case I would expect the exit code to be 0.

Which Node.js version are you using?

22.5.1

Which operating systems have you used?

  • macOS
  • Windows
  • Linux

If your OS is a Linux based, which one it is? (Include the version if relevant)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions