NVM -如何使用NVM安装相同Node版本但不同全局版本的NPM



我有两个项目:

  • project A: Node 16.10.0 NPM 7.24.2
  • 项目B: Node 16.10.0 NPM 8.10.0

都需要相同版本的Node,但不同版本的NPM。我想知道NVM是否可以实现这一点。

我能够做到(在MacOS上)),但它相当粗糙

nvm use v16.10.0
npm -v      # 7.24.2
which node  # /Users/useriko/.nvm/versions/node/v16.10.0/bin/node
# duplicate v16.10.0 folder
ditto ~/.nvm/versions/node/v16.10.0 ~/.nvm/versions/node/v16.10.0_npm8
nvm use v16.10.0_npm8
npm i -g npm@8.10.0
nvm alias v16_npm7 v16.10.0
nvm alias v16_npm8 v16.10.0_npm8
现在我可以在它们之间切换了
  • nvm use v16_npm7for npm 7.24.2
  • nvm use v16_npm8for npm 8.10.0

是否有更好的解决方案?

一个更好的解决方案是在每个项目的.nvmrc文件中定义npm版本。

有一个nvm特性请求:https://github.com/nvm-sh/nvm/issues/964.

与此同时,一个建议的解决方法是在包中定义一个preinstall脚本。安装所需的NPM版本,例如:
"preinstall": "npm i -g npm@8.10.0"

最新更新