Nodejs小记-nvm版本管理工具

像Node、Python这种版本帝,并且各个版本可能存在不兼容的情况,

比如说:Ghost就只支持指定版本的Nodejs版本,Ghost currently supports Node versions 0.12.x, 4.2+ and 6.9+ only. 可以参看 http://support.ghost.org/supported-node-versions/

如果不弄个版本管理工具,恐怕还没体会其带来的便利的时候就已对其产生深深的厌恶,我在Mac上就用了Python的版本管理工具-pyenv brew install pyenv, Node也有类似的工具—nvm

卸载

还没安装怎么就卸载了呢?其实是卸载通过官网安装包安装的全局Nodejs,如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中:

  1. node 命令在 /usr/local/bin/node
  2. npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm

安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块:

1
2
3
4
npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
sudo rm /usr/local/bin/node #删除 node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链

安装

1
2
3
4
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
#这个脚本会将nvm repository克隆到~/.nvm目录下,并且在profile文件(~/.bash_profile, ~/.zshrc, ~/.profile或 ~/.bashrc)中加入以下脚本
export NVM_DIR="$HOME/.nvm
"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

具体可以参考nvm(https://github.com/creationix/nvm)

Mac上安装方式

1
2
3
4
5
6
brew install nvm
#安装完成后会出现如下:
Please note that upstream has asked us to make explicit managing
nvm via Homebrew is unsupported by them and you should check any
problems against the standard nvm install method prior to reporting.
大概就是提示Homebrew以及要求我们做了对nvm的支持,但是不清楚有木有问题,记得报告我们哟!

Windows
在Windows上可以使用nvmw或者nvm-windows,我推荐后者,因为安装简便,它还有绿色免安装版的。

使用

1
2
3
4
nvm install v0.10.32                 #安装特定版本的node
nvm use 0.10                         #使用最新版本的0.10.x
nvm run 0.10.32 app.js            #使用v0.10.32运行app.js
nvm alias default 0.10.32           #设置默认版本为0.10.32

问题

问题一

nvm 重启终端失效,每次重新登上服务器,输入node命令或者其他和node相关的命令,如forever,都提示-bash: node: 未找到命令

  • 查看当前使用的node的版本

    1
    2
    3
    4
    nvm current #结果:返回none
    #查看当前安装的版本
    nvm ls
    #如果default -> 指向一个不存在的版本就会导致这样的问题(比如说第一次安装某个版本后,又安装了另一个版本,然后卸载了第一个版本,可能就会导致这样的问题)
  • 解决办法

    1
    nvm alias default v6.9.0 #某人版本设置为6.9.0版本
问题二

nvm被墙,安装速度奇慢还好有淘宝,它不只是给女人们买衣服的地方,还提供了很多实用的工具,如各种镜像 https://npm.taobao.org/

  • 使用方法

    1
    2
    3
    #在终端执行如下命令,其实是设置临时变量(在shell中执行程序时,shell会提供一组环境变量。 export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。)
    export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
    #如果想要永久生效,可修改profile文件(~/.bash_profile, ~/.zshrc, ~/.profile或 ~/.bashrc),将以上命令加入到profile文件中,记得修改后source下使其生效哦!

参考链接:

https://gist.github.com/TonyMtz/d75101d9bdf764c890ef
http://stackoverflow.com/questions/9044788/how-do-i-uninstall-nodejs-installed-from-pkg-mac-os-x
http://10176523.cn/archives/50

我知道是不会有人点的,但万一有人想不开呢!