nodejs版本更新非常快,并且不能完全兼容之前的第3方开发者开发的类库,有很多类库需要在指定的nodejs版本环境中运行,如果系统中只有一个全局的nodejs环境就会产生非常多的错误,而且很难解决,这时可以使用n和nvm这样的nodejs版本管理器来处理。
n
n是nodejs的一个模块,作者是TJ Holowaychuk(鼎鼎大名的Express框架作者),它的理念就是简单:no subshells, no profile setup, no convoluted api, just simple。
安装n
npm install -g n |
用n安装不同版本的nodejs
n 0.8.14 n 0.8.17 n 0.9.6 n latest n stable |
指定nodejs版本
输入n命令后,用箭头选到对应的版本后,回车确认,或者是按CTRL+C取消。
n# 0.8.14# ο 0.8.17# 0.9.6 |
删除nodejs版本
n rm 0.9.4 v0.10.0# or n - 0.9.4 |
指定版本nodejs运行
n bin 0.9.4# /usr/local/n/versions/0.9.4/bin/node n use 0.9.4 some.js n as 0.9.4 --debug some.js |
bad external relocation length
在用n指令安装某个node版本过程中,如出现dyld:bad external relocation length这样的问题,可以使用brew doctor查看原因,按说明解决。
或者是使用n latest指令安装一个最新版本,并将之前出问题的版本删除。
nvm
nvm全称node version manager,完全基于bash shell实现。
安装nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash |
使用nvm安装不同版本的nodejs
nvm install 5.0 nvm install 5.1.0 nvm install 0.12.2 nvm install 0.10.25 |
查看所有nvm管理的nodejs版本
nvm ls# v0.10.25# v0.12.2# -> system# node -> stable (-> v0.12.2) (default)# stable -> 0.12 (-> v0.12.2) (default)# iojs -> N/A (default) |
使用nvm指定nodejs版本
nvm use 5.0 |
使用指定的nodejs版本来运行命令
nvm run system --version# Running node system (npm v3.3.12)# v5.1.0 |
在一个subshell中运行指定版本的nodejs命令
nvm exec v0.12.2 node --version# Running node v0.12.2 (npm v3.3.12)# v0.12.2 |