如何修复 Windows NVM 的 `NVM_SYMLINK` 激活错误
Source: Dev.to
为什么会出现此错误
当使用官方的 Windows 安装程序安装 Node.js 时,它会创建以下目录:
C:\Program Files\nodejs
NVM for Windows 使用同一路径作为符号链接(NVM_SYMLINK),以在不同的 Node 版本之间动态切换。如果该位置已经存在一个实际目录,NVM 无法覆盖它,激活就会失败。
步骤式修复(保证方法)
步骤 1:关闭所有与 Node 相关的应用
- 关闭所有终端窗口。
- 关闭 VS Code 或其他 IDE。
- 停止任何正在运行的 Node.js 应用。
这样可以防止文件锁定问题。
步骤 2:以管理员身份打开命令提示符
- 按 Start。
- 输入
cmd。 - 右键 → 以管理员身份运行。
需要管理员权限,因为我们要修改 Program Files。
步骤 3:获取目录所有权
Windows 可能因为 TrustedInstaller 权限而阻止删除。
takeown /f "C:\Program Files\nodejs" /r /d y
然后授予完整权限:
icacls "C:\Program Files\nodejs" /grant %username%:F /t
步骤 4:结束所有运行中的 Node 进程
taskkill /f /im node.exe
taskkill /f /im npm.exe
步骤 5:删除已有的 Node 目录
rmdir /s /q "C:\Program Files\nodejs"
命令标志说明
/s– 删除所有子目录和文件。/q– 抑制确认提示。
仍然出现 “Access is Denied”?
以管理员身份打开 PowerShell 并运行:
Remove-Item "C:\Program Files\nodejs" -Recurse -Force
备选方法(文件被锁定时)
如果目录仍然无法删除:
- 重启系统。
- 不要 打开任何应用。
- 立即以管理员身份打开命令提示符。
再次运行:
rmdir /s /q "C:\Program Files\nodejs"
这通常能解决大多数后台文件锁定问题。
重新启用 NVM
目录删除后:
nvm on
然后安装并激活一个 Node 版本:
nvm install 18
nvm use 18
node -v
此时应能看到已安装的 Node 版本。
迁移到 NVM 时的最佳实践
如果你从直接安装的 Node 切换到 NVM:
- 首先在 控制面板 中卸载 Node.js。
- 手动确认
C:\Program Files\nodejs已被删除。 - 然后再安装并配置 NVM。
这样可以彻底避免激活冲突。
最后思考
该错误的根本原因是 NVM 依赖符号链接,而 Windows 不允许它覆盖已存在的实际目录。按照上述步骤操作,基本可以在大多数 Windows 环境中彻底解决 NVM_SYMLINK 激活错误。