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 -v
和npm -v
打印command not found
。
之后安装nvm
或n
来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,但我会把这一切留给你