NVM切换Node.js版本报exit status 145及版本未安装问题如何解决
故障原因
报错node v8.16.2 (64-bit) is not installed的成因
- 已安装的8.16.2版本为32位架构,nvm执行切换时默认匹配64位版本,无法识别到32位的安装包
- nvm安装目录下对应8.16.2版本的文件夹文件损坏、缺失,导致nvm判定该版本未完成安装
报错exit status 145: The directory is not empty的成因
- 设备此前未通过nvm单独安装过Node.js,默认Node.js安装目录
C:\Program Files\nodejs中存在残留文件,nvm创建版本软链接时检测到目标目录非空,触发报错 - 存在运行中的Node.js进程、终端或编辑器插件占用
nodejs目录下的文件,导致nvm无法修改目录内容 - 执行切换命令的终端没有管理员权限,无法对系统目录进行修改操作
解决方案
先解决145报错问题:
- 关闭所有运行中的终端、Node.js服务、编辑器的Node相关插件进程,结束所有任务管理器中的
node.exe进程,解除文件占用 - 手动删除默认Node.js安装路径下的
nodejs文件夹,路径通常为C:\Program Files\nodejs - 右键点击CMD或PowerShell,选择「以管理员身份运行」,再执行版本切换命令
- 执行
nvm use 16.13.0验证切换是否成功,切换完成后可执行node -v确认当前使用的Node.js版本
- 关闭所有运行中的终端、Node.js服务、编辑器的Node相关插件进程,结束所有任务管理器中的
再解决8.16.2版本切换报错问题:
- 若需要使用64位8.16.2版本,执行
nvm install 8.16.2 x64指定安装对应架构的版本,安装完成后再执行切换命令即可 - 若需要沿用已安装的32位8.16.2版本,执行
nvm use 8.16.2 x86指定32位架构即可完成切换 - 若原版本文件损坏,先执行
nvm uninstall 8.16.2卸载损坏版本,再重新执行对应架构的安装命令即可
- 若需要使用64位8.16.2版本,执行
内容的提问来源于stack exchange,提问作者John John
相关产品推荐
相关产品推荐

