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

问题描述 投票:2回答:2

在我的Mac上,我想使用Homebrew来安装早期版本的Node和NPM - 我目前正在运行Node / NPM 8.2.1/5.3.0,我想切换到6.11.2/3.10.10列出的documentation

我跑了

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

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

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

node.js macos npm homebrew
2个回答
7
投票

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

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

使用nvm:

nvm install v6.11.2

1
投票

幸运的是,有一个很好的方法可以做到这一点,如果你是像我一样发现nvm过度的人,特别是如果你只需要一个版本的app / api支持(例如johnny-five)。您可以使用另一个自制的node.js install实际创建第二个“节点”版本,而不是安装节点版本管理器。

首先安装要使用的其他版本的节点,例如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包与两个版本混合使用,所以让我们通过为node @ 4版本创建一个新的npm目录来解决这个问题:

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

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

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

其他一些选择:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.