microsoft / rushstack

Monorepo for tools developed by the Rush Stack community
https://rushstack.io/
Other
5.81k stars 592 forks source link

[rush] support pnpm `auto-install-peers` #3356

Open unional opened 2 years ago

unional commented 2 years ago

Summary

pnpm supports auto-install-peers, which will make it much less painful when installing dependency when strictPeerDependencies is turned on.

https://github.com/pnpm/pnpm/discussions/3995#discussioncomment-2581128

Repro steps

Currently adding dependencies with peerDependencies is a manual drill down process:

Tried adding auto-install-peers=true to .npmrc doesn't turn that on when using rust.

Details

To fix this, either let pnpm reads .npmrc or add autoInstallPeers to pnpmOptions in rush.json:

{
  "pnpmOptions": {
    "autoInstallPeers": true
  }
}

Standard questions

Please answer these questions to help us investigate your issue more quickly:

Question Answer
@microsoft/rush globally installed version? 5.66.2
rushVersion from rush.json? 5.66.2
useWorkspaces from rush.json? yes
Operating system? Windows
Would you consider contributing a PR? No
Node.js version (node -v)? 16.14.2
pnpm version? 6.32.8
openHacking commented 2 years ago

I need this too.thanks.

bkoplin commented 2 years ago

Likewise

dreamworkers commented 1 year ago

Please consider this 🙏

cweekly commented 1 year ago

I like the idea of rush.json pnpmOptions.autoInstallPeers, but as of pnpm v7.1.3, setting "auto-install-peers=true" in the top-level (common/config/rush/) .npmrc file seems to do the trick:

OS: Win10 Node: v16.18.0 Rush v5.70.0 PNPM v7.13.6

rush.json:
 ...
  "rushVersion": "5.70.0",
  "pnpmVersion": "7.13.6",
  "pnpmOptions": {
    "pnpmStore": "local",
    "strictPeerDependencies": true,
    "resolutionStrategy": "fast",
    "preventManualShrinkwrapChanges": false,
    "useWorkspaces": true
  },
  ...  

common/config/rush/.npmrc:
...
auto-install-peers=true
...  
kenrick95 commented 3 months ago

Seems resolved in #4379