如何全局删除已安装的npm包?

24

我认为我一直在错误地使用npm,大部分时间是使用全局安装(-g)而不是本地安装(-save)。 现在我有一个长长的全局软件包列表,我想/应该对其进行清理。

(**我是新手,并且除了强迫症整洁外,我不想无意中在应用程序中使用软件包,否则它可能成为在某个地方部署时难以解决的难题。)

我知道我可以使用npm uninstall <package> -g来实际卸载软件包,但是如何决定哪些软件包应该保留呢?有很长的名称列表,例如“cuddly-bunny@1.2.3”等等。

有没有办法确定项目是否在使用其中,或者它是否是我需要全局使用的类型?对于每一个软件包去文档阅读将会是一个漫长的过程。或者也许有一个经验法则,例如:“通常需要x、y和z,您可以删除其余的”?

此外,一旦我有了要卸载的列表,我唯一的选择是逐个执行所有卸载-g命令吗?


1
通常情况下,如果你从命令行运行它,那么它是一个全局包,而如果你在项目中使用 require(),则应该是本地的。 - Joe Clay
1
在我看来,这是一个有效的问题 - 没有任何伤害留下它。 - Joe Clay
为什么你认为全局安装是错误的方式?(我也是一个新用户,我也避免本地安装,但这样做是否不正确?) - Ayyash
Ember 有超过15,000个文件,我怀疑它不是用来托管的,我认为这些文件大多数只在开发期间很重要(比如创建一个临时服务器),在生产环境中是不需要的。 - Ayyash
1
@Ayyash - 如果你全局安装一个包,然后在两个项目中使用它,你不能只更新其中一个而不影响另一个。但是,如果你将其本地安装到一个项目中,你可以在每个项目中拥有一个单独的版本而不会相互干扰。此外,如果你已经将你的包本地安装并保存到你的 package.json 中,这意味着如果你想在另一台电脑上开发,你不必复制 node_modules,只需运行 npm install,它就会自动拉取所有依赖项。本地安装包通常使跟踪/管理项目的依赖关系更容易。 - Joe Clay
显示剩余2条评论
2个回答

31

1
相关问题:如何删除 /usr/local/bin 中任何关联脚本? - philipkd

0

在Ubuntu上,这个方法无法使用pm2,我不得不运行npm remove pm2 -g


npm removenpm uninstall 的别名,还有 rmrununlink。更多信息请查看 npm help uninstall - Pablo Bianchi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接