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

时间:2017-08-09 17:56:01

标签: node.js macos npm homebrew

在我的Mac上,我想使用Homebrew安装早期版本的Node和NPM - 我目前正在运行Node / NPM 8.2.1/5.3.0,我想切换到{{1} },如documentation

中所列

我跑了

6.11.2/3.10.10

虽然这似乎改变了我的节点版本 - $ brew install node@6 $ brew unlink node $ brew link node@ --force - > $ node -v - 我的NPM版本仍停留在6.11.2

如何将NPM切换到其他版本(如果需要,可以将其切换回来)?

2 个答案:

答案 0 :(得分:7)

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

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

使用nvm:

nvm install v6.11.2

答案 1 :(得分:1)

幸运的是,如果你是像我一样发现nvm过度的人,有一种很好的方法可以做到这一点,特别是如果你只需要一个app / api支持版本(例如johnny-five)。您可以实际创建第二个节点"而不是安装节点版本管理器。与另一个自制的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

现在,您可以使用命令节点作为先前版本,使用 node4 作为节点@ 4版本。

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

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

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

当然,您可能需要在切换版本时不需要主动的东西,并且您可以随时在某处安装单独版本的npm并使用与节点版本相同的方式对其进行符号链接,这可能会让人感到困惑随着时间的推移升级npm。

其他一些选择:

  • 脚本前缀命令
  • 在package.json
  • 中添加前缀命令和/或脚本
  • 使用在start
  • 上运行prefix命令的特定bash终端配置文件

所以几乎没有各种选择,但我会把这一切都留给你......