如何卸载npm包?

jcu*_*bic 59 uninstall npm gruntjs

我已经安装了grunt使用grunt,我无法将其删除.

我试过了:

$ sudo npm uninstall grunt
Run Code Online (Sandbox Code Playgroud)

但它给了警告:

npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
Run Code Online (Sandbox Code Playgroud)

我也试过rm,删除和取消链接.和sudo npm install grunt选项,它给:

npm WARN uninstall not installed in /usr/lib/node_modules: "grunt"
Run Code Online (Sandbox Code Playgroud)

但我仍然可以WARN从命令行调用.

编辑:

$ 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
Run Code Online (Sandbox Code Playgroud)

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

Wal*_*rée 103

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

npm uninstall <module> --save

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

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

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

npm uninstall -g <module>

从哪里运行此命令无关紧要.

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

npm install <module>

...要么:

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

...要么:

npm install <module> --save-dev (如果要向依赖项添加最小版本)

关于Grunt的好消息:

  • 如果您grunt在2013年2月18日(发布之日grunt v0.4.x)之前安装了stable ,那么grunt您的系统中可能仍有旧版本.这是因为grunt版本低于0.4.x全局安装版本,这在升级/维护版本时会造成很大的痛苦.
  • grunt并且grunt-cli是两件不同的事情.

    • grunt(没有"cli")通常通过运行安装在项目级别(当列为devDependencyin时package.json)npm install.这也称为本地安装.
    • 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

sudo不合适npm.只有你必须使用它.以下是关于其使用的优缺点的两个引用:

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

我强烈建议你不要用sudo进行包管理!包可以运行任意脚本,这使得包管理器命令与链锯发型一样安全.当然,它很快,肯定会切断任何障碍,但你可能真的希望这个障碍留在那里.

我推荐这样做一次:

sudo chown -R $USER /usr/local

这会将您的用户帐户设置为/ usr/local目录的所有者,以便您可以在其中发出常规命令.然后,在安装节点或发出npm命令时,您将不必使用sudo.

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

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

关于将/ usr/local的所有权更改为当前用户,存在某些安全问题和功能限制:

话虽如此,如果你想在不使用sudo的情况下安装全局模块,我认为没有比提到的更好的解决方案(从实用的角度来看).安全性与易用性是一个非常广泛的主题,并没有简单的答案 - 它只取决于您的要求.


小智 5

我也发生了同样的事情。在做

which grunt
Run Code Online (Sandbox Code Playgroud)

我有路径/ usr / local / bin /。里面有一个文件夹咕gr声。但是在运行命令时(甚至从/ usr / local / bin /路径中):

sudo npm uninstall -g grunt
Run Code Online (Sandbox Code Playgroud)

得到警告卸载未安装

解决方案:原来我是使用命令安装的

sudo npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)

而尝试删除只是输入咕typing声

所以一旦我跑步

sudo npm unistall -g grunt-cli 
Run Code Online (Sandbox Code Playgroud)

咕unt声被删除。

尽管您提到有问题要跑步

sudo npm install grunt
Run Code Online (Sandbox Code Playgroud)

但是仍然请检查您是否也在执行相同的错误,并使用grunt-cli运行它