n

是管理多个Node版本的工具,作者是TJ Holowaychuk(鼎鼎大名的Express框架作者),就像它的名字一样,它的理念就是简单易用。之前用的是nvm,貌似大家都说好,但是用起来切换版本配置有点麻烦,而且结合zsh启动会有延迟等等导致一些人弃用了nvm,投入了TJ大神n的怀抱(可能是不太会用nvm),n管理Node版本体验真的很simple and easy,顿时世界变得清爽许多

另外补充一下n和nvm的区别:

1
2
3
4
5
6
7
8
9
10
n命令是作为一个node的模块而存在,而nvm 是一个独立于node/npm的外部 shell 脚本。

由于npm安装的模块路径一般为/usr/local/lib/node_modules(可以使用npm root -g命令查看你的系统中全局的路径)
当使用n切换不同的node版本时,实际上会共用全局的node/npm目录。
而nvm是每个版本的node都有独立的全局目录。

So

if (需求 == 按不同node版本使用不同全局node模块) use nvm,以免出现全局模块无法更新的问题。
if (需求 == 频繁更新node,不想新版本的node再全局安装node模块) use n,省事省心,当然会有坑哦。

基本使用

安装n

curl -L http://git.io/n-install | bash
或者执行
npm install -g n

安装完记得source一下

安装node

[1] 安装指定版本

n 6.4.0

[2] 安装最新版本

n latest

[3] 安装稳定版本

n stable

切换版本

直接输入n后输出当前已经安装的node版本以及正在使用的版本(前面有一个o),你可以通过移动上下方向键来选择要使用的版本,最后按回车生效。注:要在root权限下切换方可生效

1
2
3
n
4.4.1
o 6.4.0

查看当前版本在node所有版本中的位置

n ls

删除某个版本

n rm 0.12.9

查看某版本node的安装路径

1
2
n bin 7.1.0
/Users/Kimi/n/n/versions/node/7.1.0/bin/node

以指定的版本来执行脚本

> n use 0.12.9 some.js

use can be replace with as

*设置 nvm 的默认版本

nvm alias default 6.1.0

跳坑一

安装n执行curl -L http://git.io/n-install | bash时出现如下错误
error
在开始升降级前,请自行确认当前的Node.js 版本,然后全局安装n 这个工具。当然,如果你也可以克隆源代码来编译安装「make install」;编译安装的时候,bin/n默认是安装在/usr/local文件夹下的「通过设置PREFIX=~/customize/path来自定义安装位置」。
安装之前需要清除缓存~

1
2
3
4
# 清除缓存
npm cache clean -f
# 全局安装 n
npm install -g n

致谢

n-install
利用n和nvm管理Node的版本
Set default node version with NVM
用n管理不同版本的Node
通过NPM 对Node.js进行升降级