跳至主要內容

pnpm 介绍

鸭梨大约 2 分钟

pnpm 介绍

1. pnpm 介绍

1.1 为什么使用 pnpm

pnpm(perfomance npm)源于对性能和更少空间的需求。

简单介绍:

  1. pnpm 是一个包管理器,类似于 npmyarn
  2. pnpm 极快且节省空间,因为它使用链接安装依赖,而且能避免 幽灵依赖问题open in new window
  3. pnpm 提供了兼容性选项,提供持续集成的可靠支持。

pnpm 分三个阶段执行安装:

  1. 依赖解析:仓库中没有的依赖都被识别并获取到仓库。
  2. 目录结构计算:node_modules 目录结构是根据依赖计算出来的。
  3. 链接依赖项:所有以前安装过的依赖项都会直接从仓库中获取并链接到 node_modules

1.2 安装 pnpm

安装 pnpm

npm install -g pnpm

第一次使用 pnpm 可能需要配置:

pnpm setup

Linux 可能需要指定 Shell:

SHELL=bash pnpm setup
source /root/.bashrc

2. 依赖安装方式

由于 pnpm 使用链接安装依赖,所以 node_modules 目录结构与 npmyarn 不同,下面介绍 node_modules 几种不同的安装方式。

2.1 嵌套安装

npm@3 之前,node_modules 结构是干净、可预测的,因为 node_modules 中的每个依赖项都有自己的 node_modules 文件夹,在 package.json 中指定了所有依赖项。例如下面所示,项目依赖了 foofoo 又依赖了 bar,依赖关系如下图所示。[1]

  • node_modules
    • foo
      • index.js
      • package.json
      • node_modules
        • bar
          • index.js
          • package.json

2.2 扁平安装

  • node_modules
    • foo
      • index.js
      • package.json
    • bar
      • index.js
      • package.json

  1. 都 2022 年了,pnpm 快到碗里来,知乎,https://zhuanlan.zhihu.com/p/457698236open in new window ↩︎