Mac / Homebrew – 更改节点版本不会更改NPM版本

在我的Mac上,我想使用Homebrew来安装Node和NPM的早期版本 – 我目前正在运行Node / NPM 8.2.1/5.3.0 ,并且我想切换到6.11.2/3.10.10 ,如文件中所列。

我跑了

 $ brew install node@6 $ brew unlink node $ brew link node@ --force 

虽然这似乎改变了我的节点版本 – $ node -v – > 6.11.2 – 我的NPM版本仍然停留在5.3.0

如何将NPM切换到这个其他版本(如果需要的话,切换回去)?

尝试先卸载所有节点版本: brew rm node ,然后确保node -vnpm -v打印command not found

之后安装nvmn来pipe理节点版本。 这些版本pipe理器有一个很大的优势,它们允许有几个节点版本,并在它们之间轻松切换。

  • npm – 节点版本pipe理器
  • n – 节点版本pipe理

用nvm:

 nvm install v6.11.2 

幸运的是,如果你是像我这样的人,发现nvm是过度的,尤其是如果你只需要一个版本的app / api支持(例如johnny-five),那么有一个很好的办法。 而不是安装节点版本pipe理器,你可以实际创build一个第二个“节点”版本与另一个自制node.js安装。

首先安装要使用的其他版本节点(例如node @ 4),然后取消该版本的符号链接(可以使用任何brew安装版本)。

 $ brew install node@4 && brew unlink node@4 

安装和取消链接后,转到文件夹/ usr / local / bin,然后为要访问的其他版本添加自定义符号链接:

 $ cd /usr/local/bin $ ln -s ../Cellar/node\@4/4.8.5/bin/node ./node4 

现在,您可以将命令节点用于以前的版本,将节点4用于节点4版本。

当然,我们不想将npm包与这两个版本混合,所以我们通过为node @ 4版本创build一个新的npm目录来解决这个问题:

 $ mkdir ~/.npm4 $ npm config set prefix ~/.npm4 

现在您已经准备好安装第二个版本的全局包了! 每次你想切换版本时,你都可以简单的交换前缀,因为我们正在寻找一个简单的过程,所以这可能不会经常发生。

当然,你可能需要一些不需要在切换版本时主动的东西,而且你总是可以在某个地方安装一个单独的版本的npm,并且按照与节点版本相同的方式进行符号链接,这可能会随着时间的推移而变得混乱它来升级npm。

其他一些select:

  • 脚本的前缀命令
  • 在package.json中添加前缀命令和/或脚本
  • 使用启动时运行prefix命令的特定bashterminalconfiguration文件

所以有很多种select,但我会把这一切留给你