一篇文章带你读懂node中pnpm与npm区别

pnpm(Performant NPM)是一个快速的、节省磁盘空间的包管理器,它类似于 npm(Node Package Manager)和 yarn,但提供了一些关键的优势,如更快的安装速度和更小的磁盘占用空间。

以下是 pnpm 的一些主要特点:

  1. 硬链接(Hard Links)pnpm 使用硬链接来存储包,这意味着多个项目可以共享同一个包的一个副本,从而显著减少磁盘空间的使用。

  2. 快速安装pnpm 的安装速度通常比 npm 和 yarn 更快,部分原因是它使用了硬链接和一种称为“内容寻址存储”(Content-Addressable Storage, CAS)的技术。

  3. 严格模式(Strict Mode)pnpm 提供了一个严格模式,可以确保项目的依赖关系与锁文件(pnpm-lock.yaml)中指定的一致,从而避免潜在的版本冲突。

  4. 过滤器(Filters)pnpm 支持通过命令行参数来过滤和选择性地安装包,这对于大型项目或单页应用(SPA)中的代码分割特别有用。

  5. 脚本钩子(Script Hooks)pnpm 允许你在安装、更新或删除包时运行自定义脚本,这提供了更高的灵活性和自动化能力。

  6. 与 npm 和 yarn 兼容pnpm 设计为与现有的 npm 和 yarn 项目兼容,你可以轻松地将现有项目迁移到 pnpm,而无需对代码进行重大更改。

要使用 pnpm,你首先需要在你的系统上安装它。你可以通过 npm(讽刺的是,pnpm 本身是通过 npm 安装的!)、Yarn 或其他包管理器来安装 pnpm。安装完成后,你就可以在你的项目中开始使用 pnpm 来管理依赖关系了。

npm(Node Package Manager)是 Node.js 的包管理器,它允许开发者下载、安装、升级和配置项目所需的第三方库和框架。npm 是 Node.js 生态系统的核心部分,它提供了一个集中的仓库,包含了数十万个开源包,这些包涵盖了从网页开发到数据库操作等各个方面。

以下是 npm 的一些主要特点和功能:

  1. 包管理npm 可以帮助开发者查找、安装、更新和删除项目中的依赖包。

  2. 版本控制npm 支持语义化版本控制(Semantic Versioning, SemVer),确保依赖包的版本兼容性。

  3. 脚本执行npm 允许开发者在项目中定义脚本,这些脚本可以在项目的生命周期中的不同阶段执行,如安装、构建、测试等。

  4. 全局安装与本地安装npm 支持全局安装和本地安装。全局安装的包可以在系统的任何地方使用,而本地安装的包则仅供当前项目使用。

  5. package.json 文件:npm 使用 package.json 文件来管理项目的元数据和依赖关系。这个文件包含了项目的名称、版本、描述、作者、许可证信息以及项目依赖的第三方包列表等。

  6. npm registrynpm 的包都存储在中央仓库(registry)中,开发者可以通过 npm 客户端访问和下载这些包。

  7. npm scriptsnpm 允许开发者在 package.json 文件中定义自定义脚本,这些脚本可以使用 npm run 命令来执行。

  8. 安全性:npm 提供了一些安全功能,如包签名和审计日志,以帮助开发者识别和修复安全漏洞。

要使用 npm,你需要先安装 Node.js,因为 npm 是随 Node.js 一起安装的。一旦安装了 Node.js,你就可以通过命令行界面(CLI)使用 npm 来管理你的项目依赖了。

所以pnpm有什么优势呢

  1. 节省磁盘空间

    • pnpm 使用硬链接和符号链接来管理依赖,这意味着相同的包版本在不同的项目中可以共享,从而显著减少磁盘空间的使用。相比之下,npm 和 yarn 会在每个项目中复制整个包,占用更多的磁盘空间。
  2. 安装速度快

    • pnpm 的安装速度通常比 npm 和 yarn 更快。这得益于其内容寻址存储(CAS)和硬链接技术,它们减少了不必要的文件复制和下载。
  3. 严格的依赖管理

    • pnpm 提供了严格的依赖版本控制,确保每个项目都使用精确指定的包版本,减少了版本冲突和兼容性问题。
  4. 与 npm 和 yarn 兼容

    • pnpm 旨在与现有的 npm 和 yarn 项目兼容,使得迁移变得简单。同时,pnpm 也支持 npm 和 yarn 的大多数命令行选项和脚本。
  5. 内置的 monorepo 支持

    • pnpm 内置了对 monorepo(多包仓库)的支持,使得管理多个相关包变得更加容易。它允许你在一个仓库中管理多个包,同时保持它们的独立性。
  6. 更小的 node_modules 目录

    • pnpm 的 node_modules 目录通常比 npm 和 yarn 的更小,因为它避免了不必要的文件复制,并且使用了硬链接来共享相同的包版本。
  7. 更安全的依赖安装

    • pnpm 提供了更安全的依赖安装机制,通过内容寻址存储来确保包的完整性和一致性。这有助于防止篡改和确保安装的包是可信的。
  8. 更好的性能

    • 除了安装速度快之外,pnpm 在执行其他操作时(如启动脚本、运行测试等)也通常表现出更好的性能。

总的来说,pnpm 通过创新的技术和优化的工作流程,提供了比传统包管理器更快、更高效、更节省空间的包管理解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值