Windows版NVM安装Node问题

为了方便切换不同的Node版本,我们经常使用Nvm对Node进行管理。最近,发现一个组员在使用nvm切换Node时报错,最后排查完之后才发现,此次发现的问题有别于往常,特意记录一下,仅供大家参考。

问题1: 没有卸载原有的Node就安装Nvm

遇到的第一个问题就是看到没有卸载原有安装的Node,于是立即让其卸载Node,删除环境变量,卸载Nvm后重新安装,Node卸载及Nvm安装的教程网上一搜一大把,大家参考即可。

问题2:安装Nvm后没有生成Node目录的软连接(重点)

首先,这里要了解一个概念符号链接(Symbolic Link),也有人称为软链接,玩过Linux的同学应该比较清楚。

符号链接(symbolic link)是 Linux 系统中的一种文件,它指向系统中的另一个文件或目录。符号链接类似于 Windows 系统中的快捷方式。
软链接和硬链接的区别

软链接类似于快捷方式,它可以指向任意文件系统中的一个文件或目录。 硬链接也可以看作是文件或目录的快捷方式,但是无法在两个不同文件系统之间创建硬链接。 我们将会学习如何创建及删除符号链接,还会了解什么是失效链接,以及如何删除它们。

其实,我们在安装Nvm的过程中,就会选择Node的符号链接目录,如下图所示:

Nvm中,可以认为这个符号链接目录就是我们当前正在使用的Node的目录的映射,如果有兴趣的话,可以在切换Node版本的时候看一下这个目录里面的文件。

在绝大部分人安装Nvm的过程中,这里都是没有问题的,但是偏偏这个哥们在安装Nvm的时候,所有步骤正常,但是在安装完成之后,刚刚创建的符号链接目录会自动删除,Nvm能正常安装Node,但不能切换。这种情况,最先想到了权限问题,果然,这哥们的电脑竟然用的不是系统管理员的账号,于是一顿操作赋权限,结果没啥用,改用超管用户登录,重新安装后依然是同样的问题。搞了一通,没有解决,于是再换一种思路,既然系统自动安装时,符号链接的目录会自动删除,那我手动创建,只要链接存在,切换Node时应该就可以把符号链接的指向变更。

符号链接

对文件创建符号链接

shell 复制代码
mklink "link" "target"

对文件夹创建符号链接

shell 复制代码
mklink /D "link" "target"

上面提到,Nvm能正常安装Node,不能切换版本;此时,我们先安装一个Node版本,比如16.20.0,这个时候我们利用上面的命令手动创建一个软连接目录,示例如下:

其实,这条命令的执行可以认为是手动执行了第一张图中的动作。执行完命令后,确实已经创建了一个符号链接目录,这个目录下的内容和D:\nvm\v16.20.0目录下的内容完全一样。

此时,利用Nvm安装一个其他版本的Node,再用Nvm切换Node版本时已经正常了。

相关推荐
耶啵奶膘39 分钟前
uniapp-是否删除
linux·前端·uni-app
王哈哈^_^2 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie3 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic3 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿4 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具4 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
qq_390161775 小时前
防抖函数--应用场景及示例
前端·javascript
John.liu_Test5 小时前
js下载excel示例demo
前端·javascript·excel
Yaml45 小时前
智能化健身房管理:Spring Boot与Vue的创新解决方案
前端·spring boot·后端·mysql·vue·健身房管理
PleaSure乐事5 小时前
【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
前端·javascript·react.js·前端框架·webstorm·antdesignpro