自动为包使用正确版本的 Node

Automatically use the right version of Node for a package

我知道可以使用 NVM、n 或类似工具在不同版本的 Node 之间切换。

当 运行 在给定包中执行命令时,是否有一种方便的方法可以自动使用正确版本的 Node? (“正确版本”由 engine 标签或类似标签决定)。

例如,我希望能够这样做:

cd mypackage-that-needs-node10
npm run serve
# ... node 10 is used
cd ..
cd mypackage-that-needs-node14
npm run serve
# ... node 14 is used

n 支持 engine 标签从 package.json 中查找 Node.js 版本,auto 包含更多来源,例如 .node-version 文件。

例如:

$ n install engine
# or run the target version of node
$ n run auto index.js
# or execute a command with that Node.js in path
$ n exec auto npm run serve

一种可能的方法是将 node 本身安装到您的包中,并让 npm run 脚本优先使用它而不是 node 的系统版本。参见 node