如何卸载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
低版本,这在升级/维护版本时造成了很大的痛苦。 -
grunt
和grunt-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
)。
在npm
和sudo
sudo
和npm
玩的不好。 只有你必须使用它。 下面是关于其使用的优点和缺点的两个引用:
引用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限制:
- 如果机器上有其他用户可以使用全局npm软件包,请不要更改/ usr / local的所有权
- https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correct
- https://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local
话虽如此,如果你想不使用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咕噜声
而这是它的结束:)