Node.js 中全局包 (Global Package) 和本地包 (Local Package) 的区别

2025年4月26日 | 阅读 4 分钟

在本文中,我们将讨论 Node.js 中全局包本地包之间的区别。在讨论它们的区别之前,我们必须了解全局包和本地包及其示例。

什么是本地包?

Node.js本地包仅在特定项目内可用,并安装在 node_modules 文件夹中。它们通常用于项目特定的依赖项,允许每个项目拥有一个版本化的包环境,与系统上的其他项目分开。通过限制项目的依赖项,本地安装在共享或部署代码时提供了稳定性和一致性。使用 npm install 命令安装本地包。这种方法非常适合管理项目依赖项,因为它隔离了包,从而避免了众多项目之间的版本冲突。

命令

安装本地包的步骤

1. 使用命令创建一个新包

2. 使用本地包 lodash

3. 创建一个 application.js 文件来使用 lodash 本地包

输出

 
RUNNING: node application.js
[2, 4, 6, 8, 10]   

示例 1:使用 axios 进行 HTTP 请求

输出

 
{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit..."
}   

什么是全局包?

Node.js全局包可以从任何目录访问,因为它们是集中安装在系统上的。通常,这些包用于工具、实用程序和 CLI 命令,这些工具、实用程序和 CLI 命令必须可以通过命令行或在多个项目之间访问。全局安装允许使用工具,而无需局限于特定项目以供共享或系统范围的实用程序使用。键入 npm install -g 来安装全局包。但是,如果不同的项目需要同一功能的独特迭代,全局包可能会导致版本冲突。

命令

使用全局包

1. 使用命令安装

2. 创建文件

3. 运行 nodeman 至 server.js

示例

要运行脚本,请使用以下命令

代码

全局包和本地包之间的主要区别

Node.js 中全局包本地包之间有几个主要区别。一些主要区别如下:

特点本地包全局包
安装命令npm install <package-name>npm install -g <package-name>
地点安装在项目的 node_modules 文件夹中。在整个系统上安装。
范围仅在项目内可访问。任何目录都可以访问。
典型用途项目特定需求。CLI 工具和系统级工具。
版本管理对于每个项目都是独立的。在项目之间共享,可能导致版本冲突。
隔离环境隔离依赖项以确保项目稳定性。由于没有隔离,可能在多个项目中产生冲突。
使用命令直接在代码或项目脚本中使用。在终端中用作各种任务的 CLI 工具很有用。
磁盘空间使用它的存储空间限于项目目录,以节省系统磁盘空间。如果工具存储在全局目录中并在项目中使用,它们可能会占用更多磁盘空间。
依赖管理它们根据每个 project.json 分组,允许每个项目使用特定版本。全局管理,不记录每个项目的特定版本,可能导致项目之间的差异
可重用性仅对特定项目可用。可从命令行重复使用,并可应用于多个项目。
安装权限安装在项目文件夹中,不需要 root 或管理员访问权限。由于安装在系统目录中,包有时需要管理员或 root 访问权限。

结论

总之,Node.js 用户可以选择本地或全局安装包,具体取决于项目的具体需求和每个依赖项的用途。本地包非常适合项目特定的依赖项,因为它们提供了隔离的环境、精确的版本控制以及通过 package.json 跟踪带来的团队一致性。当管理项目之间不同的库和依赖项时,这种方法非常有用。相反,全局包对于需要跨多个项目使用的 CLI 工具和实用程序非常有用,例如TypeScriptNodemon。但是,它们可能会降低可移植性,并且需要在新系统上重新安装,从而带来版本冲突和影响所有项目的系统级依赖项等风险。根据这些考虑因素平衡本地和全局包的使用有助于维持稳定高效的项目环境。