背景
新旧项目需要使用到不同的 node 版本进行开发, Mac 下可以使用 nvm 工具管理 node ,如果需要管理 Windows 下的 node,推荐使用 nvm-windows 或 nvmw;不过,nvm-windows 并不是 nvm 的简单移植,他们也没有任何关系。
前置工作
在安装 nvm-windows 之前,如果原本电脑中已经安装过了 node,需要先卸载并删除干净,否则 nvm-windows 可能会不能正常使用。
下载 nvm-windows
nvm-windows下载地址:https://github/coreybutler/nvm-windows/releases
找到最新版进行下,目前我下载的版本是1.1.9(建议安装1.1.7版本,因为1.1.9版本在使用use命令时发现有问题),点击下图所示位置的链接下载安装包
卸载node
原本安装过node的需要先卸载,没有的可以跳过该步骤
-
运行node卸载程序进行卸载
-
重启电脑(用于关闭与node相关的进程)
-
删除残留文件(可能只有部分目录是存在的)
(1)C:\Program Files (x86)\nodejs
(2)C:\Program Files\nodejs
(3)C:\Users\{User}\AppData\Roaming\npm(或%appdata%\npm)
(4)C:\Users\{User}\AppData\Roaming\npm-cache(或%appdata%\npm-cache)
注:3、4路径中的“Users”可能在你的电脑中显示为“用户”;{User}
表示你电脑的用户名;AppData
是个隐藏的文件夹; -
删除环境变量中的引用
右击我的电脑选择属性,找到高级系统设置,进入到环境变量,然后删除Node或npm的引用(使用第1步的卸载方法,这里也是已经删了的,我在这里没有找到相关的引用)
-
再次重启电脑
安装 nvm-windows
-
解压缩上面下载来的安装包,然后运行进行安装
-
选择安装路径
安装路径不要带空格,可能会出现问题,解决方法可以参考https://github/coreybutler/nvm-windows/issues/41
-
选择node安装位置
-
点击下一步进行安装
使用 nvm-windows
-
测试是否安装成功
在命令行输入nvm
,运行看到以下内容,说明安装成功了
-
配置淘宝镜像源
命令行中输入一下命令进行配置
nvm node_mirror https://npmmirror/mirrors/node/
nvm npm_mirror https://npmmirror/mirrors/npm/
或者在nvm的安装目录,打开settings.txt文件进行配置
-
下载node
使用命令nvm install 版本号
可安装指定版本的node,例如想安装 14.18.3 版本的话,可以运行nvm install 14.18.3
-
查询看看已安装的nodejs版本
使用命令nvm list
-
使用指定版本的node
nvm use 版本号
切换到指定版本,我这里是运行报错了,原因可能是安装的是1.1.9版本的问题(据说1.1.7没有这个问题),这个乱码转译过来是说权限不够的问题,参考nvm use 乱码和解决办法,解决方法看下面
解决方法:使用管理权限来运行命令行工具(cmd)
-
验证node版本
下面是正常使用的状态,使用node -v
命令能看到版本号
常用命令
nvm ls
查看已经安装的node版本nvm install 版本号
可安装指定版本的nodenvm use 版本号
切换到指定版本nvm uninstall 版本号
卸载指定版本nvm list available
查看可安装的node版本
其他可能会遇到的问题
Q: nvm install
指定版本的node,并切换后,使用node指令正常,但是使用npm指令会报错,且报错根据node 版本会不同。
A: 打开nvm安装的node目录,看看对应的版本里面的node_modules文件夹里有没有npm,没有找到说明没有安装上。你可以卸载当前版本,重新安装,有时可能要重新安装几次才成功。或者自己去下载对应的npm放到node_modules里面,参考 使用nvm切换node版本,npm 未安装的问题
Q:使用 git-bash 时,在 / 目录使用 nvm use xxx 是没有效果的
A:要进入到具体的盘符下面,才能让这条命令执行
本文参考资料
(以下排序不分先后)
- Windows下完全卸载node.js并安装node.js的多版本管理工具nvm-windows
- nvm for windows
- nvm-windows
更多推荐
Win10下完全卸载node并安装nvm-windows
发布评论