【Nodejs】使用 nvm 管理不同版本的 node 与 npm,与nodjs安装方法


在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问题将非常棘手。

nvm 应运而生,nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果需要管理 Windows 下的 node,官方推荐使用 nvmw 或 nvm-windows。不过,nvm-windows 并不是 nvm 的简单移植,他们也没有任何关系。但下面介绍的所有命令,都可以在 nvm-windows 中运行。


这里只提供window安装方法,其他系统请参考原文,这里是对安装方法的一些总结和经验,欢迎参考

简而言之,使用nvm可以切换不同node和npm版本,更多nvm方法在最底部

 

第一步

首先最重要的是:一定要卸载已安装的 NodeJS,否则会发生冲突。

首先打开nodejs所在目录,找到卸载文件文件双击中卸载即可,卸载后把没有卸载掉的文件进行删除,

打开系统设置删除环境变量,点击确定-确定。(我这里演示,所以最后点了取消)

 

然后下载 nvm-windows 最新安装包,

 

下载nvm-setup.zip直接安装即可。

 

 

第二步

安装nvm的时候会让你选择两个安装路径,第一个是nvm的安装目录,也就是根目录,第二个是nodejs版本的目录,

这里我都选择安装在了D盘

 

 

第三步

安装完成后打开cmd控制台,

(nodejs版本会持续更新,所以大家可以进入官网查看版本号,或者通过命令 nvm ls available 查看最新nodejs版本  )

通过命令

nvm install 10.16.2 

进行安装

(这里我安装了两个版本,一个最稳定10.16.2 ,和一个最新12.8.0)

 

然后找到对应版本进行安装即可

 

如果安装失败可以切换成淘宝源

进入nvm安装目录,修改settings.txt的内容为:

root: D:\nvm
path: D:\nodejs
arch: 64
proxy: none
node_mirror: http://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

 

 

 

 这里已经安装过了,所以直接显示already installed

 

此时就可以进行切换nodejs版本了,

如我现在是10.16.2    要切换到12.8.0,代码如下

 

nvm use 12.8.0

 

 

 

 

第四步

并不是说NodeJS和NPM安装好了以后就能直接使用了,这也是新手经常犯的一个错误之一。

因为默认情况下,NPM安装的模块并不会安装到NodeJS的程序目录,比如上面安装的时候我们设置的D:\nodejs\目录,

而是直接安装到了C:\Users\Administrator目录下

 

这里我们要分两步,第一步修改NPM的缓存目录和全局目录路径,将对应的模块目录改到D盘nodejs的安装目录,第二步是配置npm和nodejs的环境变量,这样nodejs才能正确地调用对应的模块。

我们先来做第一步,在D盘nodejs目录下创建两个目录,分别是node_cache和node_global,这是用来放安装过程的缓存文件以及最终的模块配置位置。配置完成后,执行下面这两个命令:

npm config set prefix "D:\nodejs\node_global"
npm config set cache "D:\nodejs\node_cache"

(如果配置后不想默认安装到这个位置,可以在c盘全局搜索 .npmrc 文件,把这个代码删除即可)

将npm的全局模块目录和缓存目录配置到我们刚才创建的那两个目录:

 

 

然后我们打开cmd命令行界面,在使用命令安装刚才的cluster模块,命令如下:

npm install cluster -g

然后打开刚才创建的node_global目录,可以看到此时cluster目录就安装到这个目录底下了。

 

 

 

第五步

 

安装全局npm

安装node的时候,npm其实也已经一起安装了。因为nvm可以管理多个版本的node,如果每次添加一个node版本都要安装一堆的包很麻烦,如果有一个npm可以让各个版本的node共用,就不会这么麻烦了,这就是为什么我们要配置一个全局的npm的原因。简单的三步就可以配置一个全局的npm

1.  npm config set prefix "D:\nvm\npm"//配置用npm下载包时全局安装的包路径
2.  npm install npm -g --registry=https://registry.npm.taobao.org //安装全局npm,不同的node都使用这个npm,想更新全局的npm的话首先删除全局路径(就是上一行命令的地址,可以使用npm config ls查看)下的npm,再执行一次这个命令即可
3.  在用户变量中添加 NPM_HOME=D:\nvm\npm,path中添加%NPM-HOME%

 

 

然后我们来配置npm的环境变量和nodejs的环境变量。在计算机图标上点右键,选属性,然后点击高级系统配置,

弹出来的新窗口右下角有个环境路径,点击去,就能看到环境路径的配置界面,我们点击新建。然后在弹出来的窗口里,

变量名填:NODE_PATH

变量值填:D:\nodejs\node_modules\

填写好后点确定,然后就能看到我们配置好的NPM环境路径。

 

此时还需要修改一些nodejs默认的模块调用路径,因为模块的安装位置变了,如果nodejs的命令还到原来的位置去找,

肯定是找不到安装的模块了。我们在环境变量窗口,选择Path,然后点击右下角的编辑,然后选择npm那个。

点击右边的编辑,将其修改为:D:\nodejs

然后点确定,保存这个配置。

 

这个时候所有的配置工作才算完成了,然后打开一个新的cmd窗口。先输入命令:

node

进入nodejs的交互式命令控制台,然后输入:

require('cluster')

如果能正常输出cluster模块的信息,说明上面的所有配置就算生效了。

 

 

 

 第六步

我们还需要做的最后一个工作是,将npm的模块下载仓库从默认的国外站点改为国内的站点,这样下载模块的速度才能比较快,只需要一个命令即可,命令是:

(记得先按两下Ctrl+c退出nodejs)

npm install cluster --registry https://registry.npm.taobao.org

上面的命令是临时使用淘宝镜像的地址来安装cluster模块。速度非常快。只用了不到0.8秒。

而我们上面第一次安装的时候用了差不多3秒多,速度快了3倍多。

 

如果想一直使用这个源的地址,那么可以使用下面这个命令来配置。

npm install -g cnpm --registry=https://registry.npm.taobao.org

配置好国内源后,安装一个较大的模块express,只用了不到6秒多一点,速度提升还是非常可观的

cnpm install express -g 

注意,原来安装方法是npm install [name]   ,这里使用淘宝镜像后安装变成  cnpm install [name]

很多难以安装的包如node-sass等都可以用这个方法安装

如果使用cnpm失败说明 上述命令没有配置成功,请再重试一遍

这里-g的意思是全局安装

 

至此,nodejs和npm在windows上的配置就全部完毕。

 

 

 

 

 

 


以下是通过nvm切换nodejs版本的命令

安装多版本 node/npm

例如,我们要安装4.2.2版本,可以用如下命令:

nvm install 4.2.2

 

nvm 遵守语义化版本命名规则。例如,你想安装最新的 4.2 系列的最新的一个版本的话,可以运行:

nvm install 4.2

  

nvm 会寻找 4.2.x 中最高的版本来安装。

你可以通过以下命令来列出远程服务器上所有的可用版本:

nvm ls-remote

  

Windows 的话,就是:

nvm ls available

  


在不同版本间切换

每当我们安装了一个新版本 Node 后,全局环境会自动把这个新版本设置为默认。

nvm 提供了 nvm use 命令。这个命令的使用方法和 install 命令类似。

例如,切换到 4.2.2:

nvm use 4.2.2

  

切换到最新的 4.2.x:

nvm use 4.2

  

切换到 iojs:

nvm use iojs-v3.2.0

  

切换到最新版:

nvm use node

  

每次执行切换的时候,系统都会把 node 的可执行文件链接放到特定版本的文件上。

我们还可以用 nvm 给不同的版本号设置别名:

nvm alias awesome-version 4.2.2

  

我们给 4.2.2 这个版本号起了一个名字叫做 awesome-version,然后我们可以运行:

nvm use awesome-version

  

下面这个命令可以取消别名:

nvm unalias awesome-version

  

另外,你还可以设置 default 这个特殊别名:

nvm alias default node

  


列出已安装实例

nvm ls

  

其他命令

直接运行特定版本的 Node

nvm run 4.2.2 --version

  

在当前终端的子进程中运行特定版本的 Node

nvm exec 4.2.2 node --version

  

确认某个版本Node的路径

nvm which 4.2.2

  

安装 Node 的其他实现,例如 iojs(一个基于 ES6 的 Node 实现,现在已经和 Node 合并)

nvm install iojs-v3.2.0

  

快捷命令:

  • nvm install node 安装最新版 Node
  • nvm install iojs 安装最新版 iojs
  • nvm install unstable 安装最新不稳定版本的 Node

原文链接:http://bubkoo.com/2017/01/08/quick-tip-multiple-versions-node-nvm/

原文链接:https://jingyan.baidu.com/article/48b37f8dd141b41a646488bc.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM