在不同环境下有时候不同项目需要切换不同版本的 node。
在同一个机器上切换过 node (特定是 windows 环境)遇到过各种各样莫名其妙的问题,就知道能无痛一键切换 node 是多么开心的事情了。
尝试过很多工具,最后总结出最理想的就是 nvm 这货了。
以下几个步骤亲测在 mac/linux 上都很好用,如果是 windows 的话,也有 nvm-windows 可以选择。
nvm 官方地址:https://github.com/creationix/nvm
nvm-windows 官方地址:https://github.com/coreybutler/nvm-windows
简单总结下步骤:
下载 nvm
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.1/install.sh | bash
启动 nvm
$ . ~/.nvm/nvm.sh
安装特定版本的 node
$ nvm install 4.4.2
使用特定版本的 node
$ nvm use 4.2.4
现在就可以看到 node 版本已经切换
$ node -v
$ npm -v
注意这种切换只在当前 shell 环境有效,也就是下次重新打开 shell 的话,就退回默认的 node 版本了。
重启 shell 后需要再重启 nvm 切换 node 版本。
这样虽然麻烦了点,但是非常灵活。
觉得重启麻烦,可以把以下配置加到 ~/.bashrc、 ~/.profile 或 ~/.zshrc 文件中:
export NVM_DIR=”$HOME/.nvm”
[ -s “$NVM_DIR/nvm.sh” ] && . “$NVM_DIR/nvm.sh”
注意:
文章里的 nvm 说的不是 https://www.npmjs.com/package/nvm
而是 https://github.com/creationix/nvm
虽然都叫 nvm 但不是同一个东西:
感觉是通过 npm 来切换 node/npm 就带有问题
而完全是用系统的 shell 来切换,则更为安全
有同学说 n 怎么样,我最开始也是用的这个工具,优点是简单轻量,直接通过 npm install -g n 开箱即用,当它会接管全局安装的一些依赖,可能带来一些冲突(我正是因为这个才转用了 nvm)。nvm 不使用 npm 安装,有自己的安装和配置方式,有自己独立的目录管理依赖,安装繁琐一些,但使用起来感觉是更为灵活。
nvm 和 n 的对比,可以看看这篇文章:http://taobaofed.org/blog/2015/11/17/nvm-or-n/