安装nvm后无法卸载全局npm软件包

时间:2017-12-12 00:51:03

标签: node.js npm nvm

我发现了几个与此问题相关的线程,但似乎没有一个专门处理我的案例,我一直无法使用我发现的建议来解决。

当我运行npm uninstall -g "some package"

它只返回:up to date in .043s - 全局包仍然存在。

例如,我正在尝试uninstall babel-cli,在running npm uninstall -g babel-cli之后,我仍然可以使用cli

这是在我卸载nodenpm并使用nvm重新安装后启动的。我想知道在卸载node时是否遗漏了某些内容并导致问题。我检查了我的点文件,发现我.npm之外仍有.nvm。这是正常的吗?提前感谢任何建议。

6 个答案:

答案 0 :(得分:21)

(nvm维护者在这里)

npm uninstall -g可以提供npm ls -g --depth=0的内容列表。如果您没有看到要在那里卸载的东西,但仍然可以访问它,那么如果它是npm-insatlled,它可能是与您的系统版本的节点一起安装的。

您可以使用nvm use system && npm ls -g --depth=0快速验证这一点。如果您在那里看到包,那么在使用系统版本时,您可以npm uninstall -g

答案 1 :(得分:3)

对不起,我知道这是一个老问题,但是现在我们已经到了2019年,这对我来说只是个问题……我发现我需要在NVM关心的路径上在npm上调用卸载。

这对我有用:

Tue Aug 20 08:09:07 ~
<username> $ npm uninstall -g edgemicro@3.0.4
up to date in 0.051s
Tue Aug 20 08:09:13 ~
<username> $ edgemicro --version
current nodejs version is v8.16.0
current edgemicro version is 3.0.4
3.0.4
// Clearly didn’t work :(

// Let’s try sudo ….
Tue Aug 20 08:09:18 ~
<username> $ sudo npm uninstall -g edgemicro@3.0.4
Password:
up to date in 0.035s
Tue Aug 20 08:10:20 ~
<username> $ edgemicro --version
current nodejs version is v8.16.0
current edgemicro version is 3.0.4
3.0.4
// Still didn’t work :(

// So where is this seemingly immortal executable?
Tue Aug 20 08:10:28 ~
<username> $ which edgemicro
/Users/<username>/.nvm/versions/node/v8.16.0/bin/edgemicro
// It’s under some NVM specific path it seems.
// It seems NPM is also under some NVM specific path, kinda expected.
Tue Aug 20 08:10:33 ~
<username> $ which npm
/Users/<username>/.nvm/versions/node/v8.16.0/bin/npm

// So let’s use that exact npm to perform the uninstall …
Tue Aug 20 08:10:42 ~
<username> $ /Users/<username>/.nvm/versions/node/v8.16.0/bin/npm uninstall -g edgemicro
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but npm-shrinkwrap.json was generated for lockfileVersion@0. I'll try to do my best with it!
removed 2442 packages in 25.851s
Tue Aug 20 08:11:24 ~
<username> $ which edgemicro
Tue Aug 20 08:11:29 ~
<username> $ // Done.

答案 2 :(得分:1)

以上解决方案均不适合我。

我的nvm版本是1.0.1-很奇怪。

所以没有建议:

nvm deactivate && nvm uninstall..

为我工作,因为它们不是命令。

我正在尝试卸载create-react-app

which create-react-app
/usr/local/bin/create-react-app

我只是做了最明显,最幼稚的事情

rm -rf /usr/local/bin/create-react-app

一切都很好!

答案 3 :(得分:0)

对于npm全球软件包之一,我也有相同的经验,下面的解决方案对我有用。 请在命令前使用sudo解决此问题。像sudo npm uninstall -g“ some package”

没有sudo: [] $ npm卸载-g松露 直到0.082s为止

尝试使用sudo之后: [] $ sudo npm卸载-g松露 shahid的[sudo]密码: 在1.902秒内删除了81个程序包

[] $:松露 bash:/ usr / bin / truffle:没有这样的文件或目录

答案 4 :(得分:-1)

无论你多少次打电话给npm卸载babel,

OR纱线卸载-g babel

OR纱线卸载-g babel-cli

确实显示已更新。当你通过输入&#34; babel -help&#34;

检查它是否仍然存在时

你得到这个 - &gt; babel still somewhere in your Mac

我知道这令人沮丧。所以我发现这些文件存储在本地的位置,并从本地存储中删除后, 我终于得到了 - &gt; Finally my system doesn't understand what babel is. What we really want

我是如何找到的:

Finder的搜索结果不会为您提供全球babel存储的路径。 我发现在我们的实根目录中有一个名为/ usr的文件夹&#34; Macintosh HD&#34; 它是隐藏的

所以, 选择查找程序 - &gt;去 - &gt;去文件夹.. 然后输入&#34; / usr&#34;。

将打开一个新的查找程序窗口,它将显示其中的所有文件。 现在你可以漫游并检查你安装的所有文件,有些可能已经忘记了,也没有机会删除。

转到usr / local / bin - &gt;在这里,您将找到全局安装的文件。 如此处所示 - &gt; Directory of shortcuts

再次,正如您所看到的,图标上有箭头符号,表示这些只是快捷方式。删除它们会切断链接,但文件仍会在某处。

要删除文件,请右键单击图标,然后选择&#34;显示原始文件&#34;

您将被重定向到您将找到babel.js文件的文件夹。

请记住,它只是一个文件。要完全删除babel-cli,请在finder中选择列视图,然后向左滚动并检查其父目录。 这里是实际安装的地方。

finalpath part 1

finalpath part 2

您可以看到,就像在我们的本地Web项目中安装的基本节点模块一样,babel-cli和类似的此类软件包以类似的格式安装,但是在这些全局位置。

现在,您可以右键单击babel-cli文件夹并将其移至垃圾箱。

希望狩猎终于结束了。

答案 5 :(得分:-1)

我知道这是一个古老的问题,但是如果以上所有选项均无效,请执行此操作。进入终端或命令提示符,然后键入“ open / usr / local / bin”。它将打开“ usr”的隐藏文件夹,并查找要删除的文件。希望这会有所帮助。