3.2 NVM、NPM与Node
NVM(Node Version Manager)是非常好用的Node版本管理器。这个技术出现的原因,是由于不同的项目node版本也不同,有的是5.0.1,有的是6.3.2。如果node版本不对,运行某个应用时,很可能就会遇到各种莫名其妙的问题。
因此,我们需要在同一台机器上同时安装多个版本的Node。NVM应用而生,很好地帮我们解决了这个问题。
Linux/Mac下的NVM官方网址:https://github.com/creationix/nvm。
Windows下的NVM官方网址:https://github.com/coreybutler/nvm-windows。
NPM(Node Package Manager)只要安装了node,就会捆绑安装该命令。它的作用与Ruby中的bundler及Java中的maven相同,都是对第三方依赖进行管理的。
3.2.1 Windows下的安装
步骤01使用浏览器打开https://github.com/coreybutler/nvm-windows/releases,如图3-2所示。
图3-2 打开下载网址
步骤02单击最新的release版本进行下载“1.1.6中的nvm-setup.zip”文件。
步骤03解压下载文件,双击其中的nvm-setup.exe文件,就可以开始安装了,如图3-3所示。
图3-3 开始安装
步骤04单击Next按钮,在打开的对话框中选中I accept the agreement单选按钮,如图3-4所示。
图3-4 选择接受
步骤05继续单击Next按钮,在打开的对话框中选择安装路径。这里选择安装到D:\nvm,如图3-5所示。
图3-5 选择安装路径
步骤06继续单击Next按钮,在打开的对话框中询问把nvm的快捷方式放在哪里(symlink的作用同快捷方式,允许我们在任意路径下都可以调用nvm命令),不用修改,直接单击Next按钮,如图3-6所示。
图3-6 默认快捷方式位置
步骤07然后弹出确认安装对话框,继续单击Next按钮就可以了。
步骤08最后设置环境变量。
NVM_HOME D:\nvm NVM_SYMLINK C:\Program Files\nodejs
从控制面板中进入到“所有控制面板项目”→“高级系统配置”→“环境变量”,如图3-7所示。
图3-7 系统变量
对PATH的修改则是在原有值的基础上添加%NVM_HOME%、%NVM_SYMLINK%,如图3-8所示。
图3-8 编辑环境变量
3.2.2 Linux、Mac下的安装
(1)下载nvm的源代码,运行下面命令即可。
$ git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
(2)Linux、Mac的用户:为脚本设置启动时加载(对于使用Windows的读者,可以直接跳过第二步,到官方网站下载exe安装文件就可以了)。
把下面的代码放到~/.bashrc或~/.bash_profile或~/.zshrc中。
$ source ~/.nvm/nvm.sh
3.2.3 运行
不能使用$ which nvm验证安装是否成功,因为即使成功了,也不会返回结果。直接在命令行输入以下代码即可。
$ nvm
如果安装成功,就会看到以下英文。
Running version 1.1.6. Usage: nvm arch : Show if node is running in 32 or 64 bit mode. nvm install <version> [arch] : The version can be a node.js version or "latest" for the latest stable version.... nvm list [available] : List the node.js installations. Type "available" at the end to see what can be ... nvm on : Enable node.js version management.
3.2.4 使用NVM安装或管理node版本
(1)列出所有可以安装的node版本。
Windows下的命令:
$ nvm list available
Linux/Mac下的命令:
$ nvm list-remote
可以看到安装的所有版本。下面是Windows中的例子,Linux、Mac类似。
(2)列出本地安装好的版本。
$ nvm list
结果形如:
$ nvm list * 10.5.0 (Currently using 64-bit executable) 6.9.1
在上面的结果中,表示当前系统安装了两个node版本:6.9.1和10.5.0。默认的node版本是10.5.0。
(3)安装node。
选择一个版本号就可以安装了。
$ nvm install 10.5.0
安装好之后,退出命令行并重新进入即可。
(4)使用node。
下面的命令是为当前文件夹指定node的版本。
$ nvm use 10.5.0
对于Linux、Mac,如果希望为系统全局使用某个版本,就可以运行下面的命令。
$ nvm alias default 10.5.0
在Linux、Mac下,还可以将其放到~/.bashrc、~/.bash_profile中。这样系统每次启动,都会自动指定node作为全局的版本。
3.2.5 删除NVM
对于Linux、Mac,直接手动删掉对应的配置文件(如果有的话)即可。
•~/.nvm
•~/.npm
•~/.bower
对于Windows,可直接在控制面板中卸载该软件。
3.2.6 加快NVM和NPM的下载速度
由于某些原因,在国内连接国外的服务器会比较慢,所以我们使用下面的命令,就可以解决这个问题(默认是使用国外的服务器,现在改成使用国内的镜像服务器)。感谢淘宝提供了这个方法。
对于NVM,使用NVM_NODEJS_ORG_MIRROR这个变量作为前缀。
$ NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist nvm install
对于NPM,使用cnpm代替npm命令。
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
对于Linux、Mac用户,可以直接创建一个"alias"命令。
alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc"
然后通过国内的淘宝服务器安装node包。例如:
$ cnpm install vue-cli -g