Support `devEngines` field in `package.json`
Description:
devEngines field is now supported by npm and corepack.
If user set node-version-file: package.json in yaml, setup-node action should consult both engines and devEngines fields, while currently only engines works.
Justification:
In monorepo, the root package.json usually have no engines field. Moreover, the engines is for users who install the npm package, while the devEngines field is for who developers who develop the npm package. Obviously, devEngines is more suitable for setup-node.
Are you willing to submit a PR? Yes
Hi @zanminkian , Thank you for creating this feature request. We will investigate it and provide feedback as soon as we have some updates.
And if anyone is working on this, maybe you could also consider factoring in the volta node field?
Then you could run volta pin [email protected] which would fetch and install node, set the node version in package.json volta.node and that's all you have to do
https://docs.volta.sh/reference/pin
But maybe it would be better to let volta handle the devEngines update instead of making this action volta-aware
@mklueh but the volta field is already supported? https://github.com/actions/setup-node/pull/921
@mklueh volta is not the standard, but devEngines is the standard which is supported by npm, pnpm, corepack ...
BTW I don't consider volta until it stablely supports pnpm.