node 版本管理-nvm
May 18, 2018
node.js 一个奇葩的版本帝,曾经也为了跟上 node 版本管理 发布的步伐。每一次 node 版本的发布,都重新源码编译安装一次。而且每次编译安装 node 版本管理 之后全局安装的 npm 包命令,会全部失效。
原因:源码安装包的路径是相同的位置,新安装的 node.js 重写覆盖了 lib/node_modules 目录。
如果切换之前的 node 版本环境,该怎么办?第一想到的是:每次安装 node.js 到不同的路径。这样虽然保留了 node 版本,但系统存在 node 命令,应该指向哪个版本呢?
1 | ln -s /usr/bin/node /usr/local/node-4 |
这样切换环境,非常不方便。
直到有一天,遇到 nvm-node 版本管理
nvm 是一个独立软件包,在类 unix 的操作系统下,安装命令:
1 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash |
mac os 还可以使用 Homebrew 来安装
在安装的时候,nvm 将不同的 node 版本存储到 ~/.nvm// 下,然后修改 $PATH,将指定版本的 node 路径加入,这样我们调用的 node 命令即是使用指定版本的 node。
nvm 显然比 n 要复杂一些,但是另一方面,由于它是一个独立软件包,因此它和 node 之间的关系看上去更合乎逻辑:nvm 不依赖 node 环境,是 node 依赖 nvm;而不像 n 那样产生类似循环依赖的问题。
node 版本管理 常用操作:
1 | nvm list # 显示已经安装的 node 版本 |
node 版本管理 示例:
-> 代表着当前使用的 node 版本