前言
在学习前端框架或者是nodejs时,有时候某些框架对nodejs的版本有要求。但此时你的电脑上已经安装了10.x版本的nodejs,你不想直接更新到12.x,想同时保存10.x和12.x版本,在必要的时候还能随时切换nodejs版本。那么nvm工具你值得拥有。
一、首先要安装nvm
1、选择合适的安装包下载并安装
博主还是比较喜欢安装.exe的,这样在安装过程中手动选择安装路径啥的也还不错。
可以自行选择下载哪种类型的安装包。
下载好之后点击.exe文件进行安装。
这里需要注意:nvm安装路径最好不要有空格和中文,不然可能会出现问题!
2、配置在下载nodejs包的时候通过淘宝镜像,这样会快一些
root: D:\nvm-nodejs\nvm # 这是我安装nvm的目录
path: C:\Program Files\nodejs # 这是nvm控制当前nodejs版本包的目录
arch: 64
proxy: none
node_mirror: http://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
在安装nvm的目录下找到 settings.txt文件,写入红框中的内容。
二、使用nvm
1、查看nvm版本(显示版本号即为安装成功):nvm v
2、查看nvm可控制的node版本列表 :nvm list
/ nvm ls
尚未使用nvm来安装nodejs的时候是没有数据的。
3、到官网查看自己要安装的nodejs版本是否存在,需要安装什么版本都在官网看。
4、使用nvm安装nodejs版本:nvm install nodejs版本号
可以安装很多个喔~~
查看当前可控制的node版本(博主安装了三个nodejs版本):
5、安装完所需nodejs版本后,可以切换到任意nodejs版本啦
切换nodejs版本:nvm use 已安装的nodejs版本号
(安装过哪些版本,才能切换对应版本)
使用nvm ls 命令可以看到当前nodejs版本前面标了*号。
还可以使用 node -v
命令查看当前系统的nodejs版本。
注意事项
如果nvm use 命令不生效?
nvm use
后执行nvm ls
,正常情况下当前使用的版本前会有*
号标注。
但是如果nvm use
之后所有版本前都没有*
号,或者是*
号没有变动到nvm use
的那个版本,那就是出现问题了!!
回顾一下操作,终于发现问题所在,nodejs默认安装目录根本没有安装相对应的node版本。
解决方法:
根据以上的安装流程应该删除C:\Program Files\nodejs目录的 nodejs目录,再重新执行一下nvm use 当前存在的nodejs版本
,此时会发现C:\Program Files目录下自动生成 nodejs目录,并且使用nvm ls
发现nodejs版本前面的 * 号也正常标上了。也已经生成对应的node 版本。
删除当前正在使用的 node版本前 一定要记得 先切换(nvm use xxx
)到这个版本再进行删除。
使用nvm use xxxx报错exit status 5: Access is denied.
nvm-setup.exe 以普通权限安装后,再运行nvm install 报以下错:
exit status 5: Access is denied.
解决:
nvm-setup.exe 以管理员权限运行
后续设置用到的powershell窗口全部都以管理员权限运行
简单点:以管理员权限开一个powershell窗口,进行安装nvm-setup.exe,进行后续配置
如果还是不行的话建议查看nvm版本是否为1.1.7版本
使用npm install xxxx报错npm ERR! Unexpected token ‘.’
遇到这个问题的场景是用nvm1.1.7的版本安装了16.x以上的node, 然后再下载依赖的时候就报错了。
总结一下就是nvm版本太低了,他的里面没有集成高版本node导致的。
解决请看:这里
参考文章:
node版本管理nvm使用过程中的一些总结(类似nvm use 无效,版本切换导致npm 失效等问题)