如何卸载npm包?

我用sudo npm install grunt ,我无法删除它。

我试过:

 $ sudo npm uninstall grunt 

但它给WARN:

 npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli" 

我也尝试RM,删除和取消链接。 和-g选项,它给:

 npm WARN uninstall not installed in /usr/lib/node_modules: "grunt" 

但是我仍然可以从命令行调用grunt

编辑

 $ whereis grunt grunt: /usr/local/bin/grunt $ file /usr/local/bin/grunt /usr/local/bin/grunt: symbolic link to `../lib/node_modules/grunt/bin/grunt' $ ls /usr/local/lib/node_modules grunt jshint $ ls /usr/lib/node_modules bower csslint devtools-terminal npm plato 

为什么我有2个目录与NPM? 删除它是否安全?

要从项目node_modules文件夹中卸载npm模块,请运行:

npm uninstall <module> --save

请注意,在运行此命令时,应该从包含node_modules文件夹的相同目录中卸载npm模块。 --save选项也会将其从package.json删除

也可以通过从本地node_modules文件夹中删除其目录来删除本地依赖项/模块安装。 是的,在那里删除依赖是安全的。

要卸载全局安装的npm模块,请运行:

npm uninstall -g <module>

从哪里运行此命令并不重要。

要安装npm模块,请运行:(仅作为参考)

npm install <module>

…要么:

npm install (如果你的项目的根目录有一个package.json文件)

…要么:

npm install <module> --save-dev (如果你想添加一个最低版本的依赖)

Grunt的好消息

  • 如果您在2013年2月18日( grunt v0.4.x发布日 )之前安装了grunt stable,则可能会有一个较老的grunt版本仍然存在于您的系统中。 这是因为全球安装了低于0.4.x低版本,这在升级/维护版本时造成了很大的痛苦。
  • gruntgrunt-cli是两回事。

    • grunt (不包括“cli”)通常通过运行npm install安装在项目级别(当在package.json作为devDependency列出时)。 这也被称为本地安装
    • grunt-cli是本地版本的grunt在不同的项目/文件夹中运行的基础。 它可以在本地安装,但在全球安装一次更有用。
  • grunt只在本地安装(通过运行npm install grunt )。

  • grunt-cli 最好在全局安装(通过运行npm install -g grunt-cli )。 grunt-cli官方npm页面仍然警告不要在全球安装grunt (没有cli)。
  • 如果要卸载grunt-cli的全局安装,请运行npm uninstall -g grunt-cli 。 gruntjs项目上的这个问题支持这个过程。
  • 永远不要全局安装grunt (通过运行npm install -g grunt )。

npmsudo

sudonpm玩的不好。 只有你必须使用它。 下面是关于其使用的优点和缺点的两个引用:

引用Isaac Z. Schlueter的介绍npm文章:

我强烈build议你不要用sudo做包pipe理! 软件包可以运行任意脚本,这使得一个包pipe理器命令可以像链锯理发一样安全。 当然,这个速度很快,肯定会克服任何障碍,但是实际上你可能想把这个障碍留在那里。

我build议这样做一次:

sudo chown -R $USER /usr/local

这将您的用户帐户设置为/ usr / local目录的所有者,以便您可以在那里发出正常的命令。 那么当您安装节点或发出npm命令时,您将不再需要使用sudo。

这种方法好多了。 毕竟,/ usr / local应该是你安装的东西。

Andrei Karpushonak提到的另一个问题是 :

有关将/ usr / local的所有权更改为当前用户的某些安全问题和function限制:

话虽如此,如果你想不使用sudo来安装全局模块,我没有比提到的更好的解决scheme(从实用的angular度来看)。 安全性vs易用性是非常广泛的话题,并不是一个简单的答案 – 它只是取决于你的要求。

同样的事情发生在我身上。 在做

 which grunt 

我得到path/ usr / local / bin /。 里面有一个文件夹咕噜声。 但是在运行命令(甚至从path/ usr / local / bin /中):

 sudo npm uninstall -g grunt 

得到警告卸载未安装

解决scheme:事实certificate,我使用命令安装

 sudo npm install -g grunt-cli 

而试图删除只是input咕噜声

所以一旦我跑了

 sudo npm unistall -g grunt-cli 

咕噜声被删除。

虽然你提到了你运行的问题

 sudo npm install grunt 

但是仍然检查你是否也犯了同样的错误,并用grunt-cli来运行它

在某些情况下,可能需要使用npm的“删除软件包”function。

npm – 取出一个包裹

描述

“这卸载了一个软件包,彻底删除了代表它安装的所有npm”。

在你的第三个代码块上,你发布了这个消息:

 npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli" 

我发现使用

 which grunt 

或者

 whereis grunt 

CLI /控制台中的命令提供了一个不完整和令人困惑的输出。

这两个命令都会返回grunt-cli安装的path,但是可以简单的将它返回为grunt

另外使用,

 which grunt-cli 

或者

 whereis grunt-cli 

无法将任何输出返回到CLI控制台。 我相信这是npm的命名空间问题/function。

我也有一种情况,我无法卸载与npm的卸载functiongrunt-cli由其他贡献者推荐以上。

唯一对我有用的是使用程序全名npm删除function,如下所示。

 npm rm -g grunt-cli 

这应该返回到您的控制台。

 unbuild grunt-cli@#.##.# 

祝你好运!

先使用这一个

哪个咕噜咕噜

要么

哪个咕噜咕噜

这会告诉你模块的path

在我的情况是在/ usr / local / bin /

一旦我进入bin文件夹,我就写了

 sudo rm咕噜声

而这是它的结束:)