我们有一个构建服务器,其中安装了多个
node
版本并使用 nvm
进行管理,并且 node -v
不断变化。
我看不到任何方法来告诉
npm
我正在为哪个 NodeJS 运行时构建,所以 npm
或 npm i
关心 node
当前可用哪个版本?
我可以在同一台服务器上构建 NodeJS v20 应用程序和 NodeJS v18 应用程序,无论安装了哪个节点版本和/或当前处于活动状态的节点版本吗?
更新:这篇文章似乎建议 npm 可以检查所需的节点版本(通过 package.json 的引擎部分),但 npm 仍将构建应用程序。
npm
本身不是构建工具(仅处理依赖项并执行脚本),您可以参考未指定的构建命令和可执行文件?
话虽如此,使用
nvm
,您至少可以使用特定的 node
和 npm
版本,无论当前系统或构建服务器的默认 node
/npm
版本如何,使用 nvm exec <nodeVersion> npm <command>
:
您可以使用所需版本的节点在子 shell 中运行任意命令
(或其相关的
npm
版本)
例如:
nvm exec 18 npm install # Will use the appropriate npm version for Node v18