【发布时间】:2016-06-21 05:55:35
【问题描述】:
我认为我一直在错误地使用 npm,大部分时间是全局安装(使用 -g)而不是本地安装(使用 -save)。现在我有一长串我想要/应该**清理的全局包。
(**我是新手,除了 OCD-tidy,我不想在没有明确提及的情况下意外使用应用程序中的包,否则在某个地方部署可能会成为一个难题.).
我知道我可以使用npm uninstall <package> -g 进行实际删除,但我如何决定应该保留哪些内容? 有一个名为“cuddly-bunny@1.2.3”之类的东西的列表很长"等等。
有没有办法确定一个项目是否正在使用它,或者它是否是我在全球范围内需要的那种东西?为每个人去看文档将是漫长的一天。或者也许有一个经验法则,例如:“一个通常需要 x、y 和 z,而你可以删除其余的”?
另外,一旦我有一个删除列表,我唯一的选择是一个一个地执行所有这些 unistall -g 命令吗?
【问题讨论】:
-
一般来说,如果你从命令行运行,它是一个全局包,而如果你在项目中
require()它,它应该是本地的。 -
我刚刚了解到大多数软件包都是作为其他软件包的一部分安装的,并且(我认为)在我删除父级时会被删除。列表没有我想象的那么长,我认得列表左侧的大部分名字。我想我应该删除这个问题,但 stackoverflow 说我不能,因为它有答案。
-
这是一个有效的问题 IMO - 留下它没有害处。
-
为什么你认为全局安装是错误的方式? (我也是新用户,我也避免本地安装,但是这样有错吗?)
-
@Ayyash - 如果你全局安装一个包,然后在两个项目中使用它,你不能为一个而不是另一个更新它,而如果你将它本地安装到一个项目中,你可以在每个项目中都有一个单独的版本,而不会受到干扰。另外,如果你在本地安装了你的包,并保存到你的
package.json,这意味着如果你想在另一台计算机上开发,你不必复制node_modules;你只需要运行npm install,它就会自动将它们全部拉入。本地安装包通常会使跟踪/管理项目的依赖项更容易。