You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
They're two different knobs, and pnpm's own repo is actually a decent illustration of the split.
nodeVersion in pnpm-workspace.yaml only sets the version pnpm assumes when checking engines ranges, it never changes what actually runs. On pnpm 11.5.3 with real Node 22.22.3, setting nodeVersion: 22.13.0 plus engineStrict: true failed an engines.node: ">=22.20.0" check with "Got: 22.13.0". So 22.13.0 is just the floor the repo validates dependency compatibility against.
devEngines.runtime declares the Node devs actually use, and pnpm enforces it: with "version": "26.3.0", "onFail": "error" install refused to run on 22, and with "onFail": "download" pnpm fetched 26.3.0 and pnpm node -v printed v26.3.0. There's also #9817 where zkochan says to prefer devEngines.runtime since it's the new standard field, so for your own project that's the one to set.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
I see multiple ways of specifying the nodejs version in pnpm 11:
pnpm-workspace.yamlhas anodeVersionfieldpackage.jsonhas adevEngines.runtimefieldIt's not clear for me which one to use.
pnpm itself uses both fields with completely different node versions:
Can someone explain the difference? And maybe the docs can be a bit more clear on this?
Thanks!
All reactions