繁体   English   中英

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

[英]Can't uninstall global npm packages after installing nvm

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

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

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

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

这是在我卸载nodenpm并使用nvm重新安装后开始的。 我想知道我在卸载node时是否遗漏了某些东西并且它导致了问题。 我检查了我的点文件,发现我在.npm之外还有一个.nvm 那是正常的吗? 在此先感谢您的任何建议。

(这里是 nvm 维护者)

您可以在npm ls -g --depth=0处获得npm uninstall -g的内容列表。 如果你在那里没有看到你想要卸载的东西,但你仍然可以访问它,那么如果它是 npm 安装的,它可能是与你的系统版本的 node.js 一起安装的。

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

抱歉,我知道这是一个老问题,但现在是 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.

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

我的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

一切都很好!

我试图通过npx删除create-react-app以使用它的最新版本,但即使我全局删除它,也会不断收到相同的警告。

You are running `create-react-app` 4.0.3, which is behind the latest release (5.0.0).

We no longer support global installation of Create React App.

Please remove any global installs with one of the following commands:
- npm uninstall -g create-react-app
- yarn global remove create-react-app

所以我认为它可能是关于 npm 缓存。

Go 至:

C:\Users\{YOUR-LOCAL-USERNAME}\AppData\Local\npm-cache\_npx

你会发现一些随机命名的文件夹,如c67e93de6234c87c 这些文件夹包含您尝试通过npx使用的最新包。

所以现在,您应该找到包含您要删除的 package 的文件夹。 您可以通过阅读每个文件夹中的package.json找到它。

找到正确的目录后,使用本地卸载命令(不是 npm -g uninstall)卸载您尝试在此目录中删除的 package:

npm uninstall create-react-app

现在您可以通过 npx 免费使用最新版本的package了。

对于 npm 全局包之一,我也遇到过同样的情况,以下解决方案对我有用。 请在您的命令之前使用 sudo 来解决这个问题。 就像 sudo npm uninstall -g "some package"

没有 sudo: []$ npm uninstall -g truffle up to date in 0.082s

尝试使用 sudo 后:[]$ sudo npm uninstall -g truffle [sudo] shahid 的密码:在 1.902 秒内删除了 81 个软件包

[]$:truffle bash: /usr/bin/truffle: 没有那个文件或目录

无论你调用 npm uninstall babel 多少次,

或纱线卸载 -g babel

或纱线卸载 -g babel-cli

它确实显示更新。 当您通过输入“babel -help”检查它是否仍然存在时

你得到这个 - > babel 仍然在你的 Mac 中

我知道这令人沮丧。 所以我找到了这些文件在本地存储的位置,在将它们从本地存储中删除后,我终于得到了 ->最后我的系统不明白 babel 是什么。 我们真正想要的

我是怎么找到的:

Finder 的搜索结果不会为您提供全局 babel 存储的路径。 我发现在我们真正的根目录“Macintosh HD”中有一个名为/usr的文件夹它是隐藏的

所以,选择finder -> Go -> Go to Folder..然后输入“/usr”。

一个新的查找器窗口将打开,它将显示其中的所有文件。 现在您可以四处走动并检查您安装的所有文件,有些可能已被遗忘并且从未有机会删除。

转到 usr/local/bin -> 在这里您将找到全局安装的文件。 如图所示 - >快捷方式目录

同样,如您所见,图标上有箭头标志,表示这些只是快捷方式。 删除它们将切断链接,但文件仍会在某处。

要删除文件,请右键单击该图标并选择“显示原始文件”

您将被重定向到一个文件夹,您将在其中找到 babel.js 文件。

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

最终路径第 1 部分

最终路径第 2 部分

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

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

希望狩猎终于结束。

我知道这是一个老问题,但如果上述选项都不起作用,请执行此操作。 进入终端或命令提示符并输入“open /usr/local/bin”。 它将打开“usr”的隐藏文件夹并查找您要删除的文件。 希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM