为什么要全局安装npm包?

5
安装 npm 包为全局包而不是项目本地包的一些原因或考虑因素有哪些?
3个回答

8

从这篇文章开始

主要区别在于本地和全局包之间存在这样的差异:
- 本地包是安装在运行 "npm install " 的目录中,并且它们被放置在该目录下的 node_modules 文件夹中。 - 全局包则统一放置在系统中的一个位置(具体位置取决于您的设置),而不管您在哪里运行 "npm install -g "。
通常情况下,所有包都应该本地安装。这可以确保您的计算机上有数十个应用程序,每个应用程序都可以运行需要的不同版本的每个包。
如果更新全局包,则会使所有项目使用新版本,这可能会在维护方面造成噩梦,因为某些包可能会与其他依赖项不兼容等等。
所有项目都有自己的本地包版本,即使这可能看起来浪费资源,但与可能的负面后果相比,它微不足道。
当一个包提供一个可在 shell(CLI)中运行的可执行命令,并且在多个项目中重复使用时,应该将其全局安装。

1
如果您在安装时没有使用-g选项,则该软件包将仅复制到项目目录内的node_modules文件夹中。
全局安装会将所有文件复制到任何地方Node可以访问的位置。
npm install -g my_lib

感谢您的友善评论,我可以这样想象吗:如果我全局安装了某个包,那么我可以在各种项目中重复使用该包。如果我错了,那么“节点可以从任何地方访问”是什么意思,难道不意味着重用一个包吗?我真的希望得到您的回复 :) - Pop
当然你是对的。你可以称之为“重用”。 - Charlie

-1

这个问题的一个好的来源可以在 npm 文档 这里 找到。

我通常使用的一个通用规则是,如果一个包可以在多个项目中使用,那么我会全局应用这个包。Eslint 是一个很好的例子。


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