如何从 Windows 中完全删除 node.js

Posted

技术标签:

【中文标题】如何从 Windows 中完全删除 node.js【英文标题】:How to completely remove node.js from Windows 【发布时间】:2014-01-09 18:22:12 【问题描述】:

我卸载了我以前版本的 node.js (0.8.11) 并从 node.js 网站下载了最新的 0.10.24 并安装了它。但是,运行node --version后,仍然表明我运行的是v0.8.11。显然,在卸载过程中留下了一些东西,这导致我在尝试通过 npm 添加模块时遇到各种错误。我已经看到了适用于 OSX 和 Linux 的解决方案,但找不到适用于 Windows 的任何东西。我正在运行 Windows 7 64 位。

【问题讨论】:

这听起来很糟糕,但你后来重启了吗? 找到卸载程序(例如WIN键,卸载NodeJS)。为我工作。 【参考方案1】:

我实际上在 Microsoft 卸载时遇到了失败。我已经安装了 node-v8.2.1-x64 并且需要运行版本 node-v6.11.1-x64。

卸载失败并出现错误:

Windows 无法访问指定的设备、路径或文件

或类似的。

我最终转到下载文件夹,右键单击 node-v8.2.1-x64 MSI 并选择卸载.. 这很有效。

【讨论】:

谢谢!我不再拥有旧版本,但是获取它抱怨丢失的相同版本的安装程序,然后按照您建议的相同步骤完美运行。【参考方案2】:

如何从 Windows 中删除 Node.js:

    深呼吸。

    运行npm cache clean --force

    使用卸载程序从程序和功能中卸载。

    重新启动(或者您可能可以从任务管理器中杀死所有与节点相关的进程)。

    查找这些文件夹并删除它们(及其内容)(如果仍然存在)。根据您安装的版本、UAC 设置和 CPU 架构,这些可能存在也可能不存在:

C:\Program Files (x86)\Nodejs C:\Program Files\Nodejs C:\Users\User\AppData\Roaming\npm(或%appdata%\npmC:\Users\User\AppData\Roaming\npm-cache(或%appdata%\npm-cacheC:\Users\User\.npmrc(也可能在没有 . 前缀的情况下检查它) C:\Users\User\AppData\Local\Temp\npm-*

    Check your %PATH% environment variable 确保不存在对 Nodejsnpm 的引用。

    如果它仍然未卸载,请在命令提示符处键入where node,您将看到它所在的位置——删除它(也可能是父目录)。

    重新启动,以防万一。

【讨论】:

啊,原来我安装了 Meteor,它与它自己的 node.exe 一起打包。感谢您的帮助! 我还有一个 %AppData%\npm-cache 目录,大小约为 100 MB。 确保您还删除了您的%USERPROFILE%\.npmrc 文件! (通常是 C:\Users\my_username\.npmrc)如果这有错误的prefix=,那么实际上什么都不会起作用,而且它会让你很难过看到你的全新安装只是无限循环。见***.com/questions/29388730/npm-hangs-on-any-command。 @brandonscript,也许将其添加到您的答案中,因为它仍然是一个非常受欢迎的谷歌搜索结果。 C:\Users\User\.node-gyp 目录呢? 你知道当微软在他们的文档中links to it 时答案很好......【参考方案3】:

无论您安装了什么 Node.js 版本,再次运行它的安装程序。它要求您像这样删除 Node.js:

【讨论】:

我试过这个。我有一个节点 9.x 和一个节点 12.x。两者都由 nvm 管理。它卸载了 9.x,但它使 12.x 成为孤儿。重新运行安装程序并没有识别出我在机器上仍然有一个节点版本。解决方案是再次运行安装程序以重新安装它,然后将其卸载。没有更多节点,但“nvm list”仍然显示这两个版本。 @Mark Irvin 这是因为这适用于特定版本,并且如果您使用了安装程序 这是正确答案【参考方案4】:

我来到这里是因为“添加/删除”程序中没有“删除”按钮。它在说“Node.js 不能被删除”。

这行得通:

    获得了我安装的 Node 版本的 .msi。运行它来修复安装以防万一。 打开管理员命令提示符并运行msiexec /uninstall <node.msi>

【讨论】:

【参考方案5】:

最好的办法是从控制面板中删除 Node.js。删除后下载所需版本的 Node.js 并安装它,它就可以工作了。

【讨论】:

如问题中所述,较旧的nodejs由用户卸载并安装最新,然后他遇到了一个问题,这就是他发布这个问题的原因,你可能没有遇到同样的问题,所以这不是问题的答案。【参考方案6】:

我昨天遇到了同样的问题,我的解决方案是: 1.从控制面板卸载而不是从你的cli 2.从其网站下载并安装最新或所需版本的node 3.如果你错误地尝试通过cli卸载(它不会经常完全删除)那么你没有在cpanel中获得卸载选项在这种情况下安装相同版本的节点然后按照我的1.步骤

希望对某人有所帮助。

【讨论】:

【参考方案7】:

场景:当 Windows 没有用于 Node 安装的程序条目时删除 NodeJS

我遇到了一个问题,我的 NodeJS (0.10.26) 版本可能不能被卸载或删除,因为 Windows 7 中的程序和功能(又名添加/删除程序)没有记录我已经安装了 NodeJS...所以除了手动删除注册表项和文件之外,没有其他选项可以删除它。

验证您的 NodeJS 版本的命令: node --version

我尝试安装最新推荐版本的 NodeJS,但在安装过程结束时失败并回滚。 NodeJS 的多个版本也失败了,安装程序也同样将它们回滚。我无法从命令行升级 NodeJS,因为我没有安装 SUDO。

解决方案:在花了几个小时解决问题(包括升级 NPM)后,我决定在我的系统上重新安装 EXACT 版本的 NodeJS,而不是现有安装。

该解决方案有效,它重新安装了 NodeJS,没有任何错误。更好的是,它还在添加/删除程序对话框中添加了一个正式条目。

现在 Windows 已经知道忘记了 NodeJS 安装,我可以完全卸载我现有的 NodeJS 版本。然后,我成功安装了适用于 Windows 平台的最新推荐版本的 NodeJS(在撰写本文时为 4.4.5 版),而无需启动回滚。

我花了一段时间才成功,所以我发布这个以防它帮助其他有类似问题的人。

【讨论】:

如果有人想使用这个答案,这里有所有可供下载的 Node 版本:nodejs.org/en/download/releases 工作表,我必须从 0.12.0 -> 0.12.18 更新,然后是 0.12.18 -> 6.5 我正在安装 VS 2015/2017 安装的节点版本 0.12.2。我需要将其升级到最新版本,所以我继续使用您的解决方案。通过安装程序安装该版本后,我能够从控制面板中删除 Node.js。但是当我检查节点当前版本时,它仍然显示安装了相同的版本。有任何想法吗?谢谢。 这个解决方案在不同的机器上为我工作了两次。它的行为表明您安装的新 NodeJS 版本并未真正删除。您需要一个全新的命令提示符或控制台窗口。在卸载 Node.js 之前,请确保您已关闭所有正在使用的命令提示符或控制台窗口。打开一个新的命令提示符并验证版本。最后,我不相信 NodeJS 会编写任何 Win 注册表项,尽管您可以再次安装仍由 Windows 路径引用的 Node,例如来自 IDE 或其他开发人员应用程序。 你也可以有一个内存/文件锁。如果您尚未解决问题,只需重新启动 Windows,而无需启动任何不必要的应用程序。然后再次尝试卸载 NodeJS。【参考方案8】:

在我的情况下,仅靠上述方法是行不通的。我已经安装并卸载了几个版本的 nodejs 来修复这个错误:npm in windows Error: EISDIR, read at Error (native) 我一直在尝试运行任何 npm 命令,包括使用以下命令获取 npm 版本:npm -v .

因此,nodejs 文件夹中的 npm 目录被删除,并从 npm dist: 复制了最新的 npm 版本,然后一切都开始工作了。

【讨论】:

哇,从 Windows 中删除 Node 真是一件苦差事,不是吗?我不认为这是一种常见的状态,但它显然已经发生在我们许多人身上...... ;-) 我希望使用 Mac OS 和 Linux 安装和删除更加简化和成功,因为它们的底层架构是 npm 和 node 原生的。

以上是关于如何从 Windows 中完全删除 node.js的主要内容,如果未能解决你的问题,请参考以下文章

如何从谷歌云存储中批量删除文件? (Node.js)

如何完全从 Windows 中删除 anaconda?

Coffeescript / Node.js:如何从对象数组中删除重复对象?

如何从 Windows 机器中完全删除 Python?

如何从适用于 Node.js 的 Azure blob v12 SDK 中删除 blob

node.js 与 express 如何从 url 中删除查询字符串