安装nodejs方式有很多种。
第一种:官网下载
通过nodejs官网下载安装 ,但有个缺陷,不同版本的nodejs无法顺利的切换。
第二种: NVM安装
NVM可以帮助我们快速切换 node版本。但是安装NVM过程中有很多坑,网上找了很多文档都没解决问题。这里自己总结下,帮助大家顺利安装软件。
一、 下载nvm安装包
官方下载地址:https://github.com/coreybutler/nvm-windows/releases
推荐下载nvm-setup.zip这一个,可能有的下载教程会推荐你下载nvm-noinstall.zip,这个我试过,noinstall确实下载之后不用安装,但是得自己配置setting.txt文件,以及环境变量,反而更麻烦。
而nvm-setup.zip安装,直接可以帮我们把环境变量,以及setting都配置好,我们只需要一路下一步安装即可。
![](https://img-blog.csdnimg.cn/8b41447a767848a4b54d35616c2303c9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
二、 安装nvm
下载解压后直接是个exe:
选择nvm安装的路径。
![](https://img-blog.csdnimg.cn/46def489e08c4ff8b67d404143b3b3cb.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
这个是选择nodejs安装路径。对于这个路径刚开始安装的时候并不是很理解,后面进行讲解。
![](https://img-blog.csdnimg.cn/51ee0b5293354ea8bebc87b032aefece.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
安装完之后,会发现环境变量自动就配置好了。这里简单提一嘴,为什么安装一些软件都要求配置环境变量git也是,环境变量起到的作用是可以在任意文件夹或者文件路径下,运行相关的命令。
例如nvm命令,假如不配置环境变量,可能我只能在nvm安装路径下使用命令。
![](https://img-blog.csdnimg.cn/6492a2898a53439f8e9b084c4d2cd692.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
查询版本号:
![](https://img-blog.csdnimg.cn/7bc37a2077d44573a61491acec6d60c6.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
三、 使用nvm
刚安装好nvm发现node和npm是都不能用的,原因是我们只安装了nvm,nvm是帮我们管理node 的,他并不是可以替代node
。下面我们进行安装node,安装node只需要输入命令即可安装。
![](https://img-blog.csdnimg.cn/c0e7f0bab9bd41ddb50ebb06b6fc4ef3.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
常用命令:
nvm ls // 查看目前已经安装的版本
nvm install 10.5.0 // 安装指定的版本的nodejs
nvm use 10.5.0 // 使用指定版本的nodejs
nvm list available //显示可下载版本的部分列表
nvm uninstall 10.5.0 //删除已安装的指定版本,语法与install类似
nvm alias //给不同的版本号添加别名
nvm unalias //删除已定义的别名
`nvm reinstall-packages <version>` //在当前版本node环境下,重新全局安装指定版本号的npm包
nvm current //显示当前的版本
进行安装:
![](https://img-blog.csdnimg.cn/4cdec90a5e564b0a86b666e798996dbe.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
查看已经安装的版本。
![](https://img-blog.csdnimg.cn/684c0cd6087049cb827feaf19f5fb94e.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
虽然刚刚下载了,但是查看当前使用的,并没有使用,意味着他是需要自己进行输入使用命令的。
![](https://img-blog.csdnimg.cn/6525573e11b148eaa2a893f8b5199417.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
并且会发现刚刚我安装nvm的nodejs路径填写的默认路径,然后会发现C:\Program Files\nodejs这个路径下根本没有nodejs,那我们下载的node放哪里去了?其实在nvm安装路径下。
由此可以推测,我们要想使用node,就需要让node挪到环境变量当中配置的node路径下,但是不需要我们手动挪,我们使用nvm提供的use使用当前版本命令即可。
![](https://img-blog.csdnimg.cn/26551611a0d8420db982be11015cf824.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
四、遇到问题
1、nvm use命令报错
输入使用命令:nvm use 12.16.3,直接报错了。
![](https://img-blog.csdnimg.cn/e20177b5d06c49709e205335a249a463.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
这里需要注意我们需要使用管理员开启的cmd黑框框
,才可以。我推测的是跟安装nodejs路径有关系,因为我是用的默认路径在C:\Program Files下,当我输入使用当前版本的node的时候,相当于nvm帮我们把下载好的node挪动到环境变量配置的node地址下。这样nvm就完成了node版本之间来回切换。
![](https://img-blog.csdnimg.cn/c0967a9b54364f33ace7401672641e78.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
这时候再查看C:\Program Files,会发现node已经存在了,环境变量安装的时候配置的路径就是这个路径,那意味着node和npm命令都可以使用了。
![](https://img-blog.csdnimg.cn/4edda27ee681444ba1208b82c1865fab.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
然而并不是,node命令可以用了,npm还是不能用。
![](https://img-blog.csdnimg.cn/b6968dd64e4e4de39bd3888d061de596.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
2、npm -v命令报错
这是因为node版本问题,有部分node版本是没有直接对应npm的,导致node里面根本没有包含npm。
![](https://img-blog.csdnimg.cn/0b1158293c5b493e8fcc1e379aa97cd4.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
于是我下载了10.22.1版本
![](https://img-blog.csdnimg.cn/69df7879e7914f1f819ad103692eb952.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
发现这个版本是有npm的。
![](https://img-blog.csdnimg.cn/77949dbeb8174cbcab0679a742b05634.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
![](https://img-blog.csdnimg.cn/b71a0ef7104046b4a64141a0b85fb8ac.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
如果我就是想用12.16.3版本呢?
我们可以手动安装npm,然后给他放到nvm安装路径下的12.16.3文件夹下即可。
![](https://img-blog.csdnimg.cn/3323034d346b404fa37287e20516d165.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
然后去到这个链接:https://npm.taobao.org/mirrors/npm/
下载你安装那个node版本时提示的那个版本的npm即可(老实说看了那么多博客我还是很懵逼,问题就是出在这里,都写着去这个链接里下载对应的npm版本即可,但是对应的版本是哪个呢?)
那么npm v6.14.4是:
![](https://img-blog.csdnimg.cn/22aeb60ee3ad4950bfbe4d32573e101a.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
解压后将文件夹重命名为npm并复制到node_modules目录下
最后将npm中bin目录下的npm、npm.cmd、npx、npx.cmd复制到与node_modules目录同级目录下
![](https://img-blog.csdnimg.cn/1ce0703619894944ab213f5d22ac14a9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjEwMTgzOQ==,size_16,color_FFFFFF,t_60)
有版本了说明可以使用npm了