Pnpm的使用

pnpm 是一个快速、节省磁盘空间的 Node.js 包管理工具,相比 npmyarn,它通过硬链接符号链接 技术优化了依赖安装效率。以下是 pnpm 的核心用法和常见场景说明:


1. 安装 pnpm

确保已安装 Node.js,然后通过以下命令安装 pnpm:

bash

|---|-----------------------------------|
| | npm install -g pnpm |
| | # 或通过核心包管理器(如 Homebrew、Scoop)安装 |


2. 核心命令

初始化项目

bash

|---|-------------------------------|
| | pnpm init # 创建 package.json |

安装依赖
  • 安装所有依赖 (根据 package.json):

    bash

    |---|------------------------------|
    | | pnpm install # 或简写为 pnpm i |

  • 安装特定包

    bash

    |---|------------------------------------------------|
    | | pnpm add lodash # 添加到 dependencies |
    | | pnpm add -D typescript # 添加到 devDependencies |
    | | pnpm add -g pnpm # 全局安装包 |

  • 安装指定版本

    bash

    |---|-------------------------|
    | | pnpm add react@18.2.0 |

更新依赖
  • 更新所有依赖

    bash

    |---|---------------------------|
    | | pnpm update # 或 pnpm up |

  • 更新特定包

    bash

    |---|----------------------|
    | | pnpm update lodash |

卸载依赖

bash

|---|-----------------------------------------------------|
| | pnpm remove lodash # 从 dependencies 中移除 |
| | pnpm remove -D typescript # 从 devDependencies 中移除 |

运行脚本

bash

|---|-------------------------------------------------------|
| | pnpm run dev # 运行 package.json 中 scripts 定义的 dev 脚本 |
| | pnpm dev # 简写(如果脚本名无冲突) |

全局命令
  • 查看全局安装的包

    bash

    |---|--------------------------|
    | | pnpm list -g --depth=0 |

  • 升级 pnpm 自身

    bash

    |---|--------------------|
    | | pnpm add -g pnpm |


3. pnpm 的优势

节省磁盘空间
  • 硬链接 :同一依赖的不同版本在全局存储(~/.pnpm-store)中只保存一份,项目通过符号链接引用。
  • 扁平化依赖 :避免 node_modules 嵌套过深(类似 yarn 的扁平化,但更高效)。
性能优化
  • 并行安装:利用多线程加速依赖下载。
  • 增量安装:仅更新变更的依赖,而非全部重新安装。
安全性
更新依赖
卸载依赖

bash

|---|-----------------------------------------------------|
| | pnpm remove lodash # 从 dependencies 中移除 |
| | pnpm remove -D typescript # 从 devDependencies 中移除 |

运行脚本

bash

|---|-------------------------------------------------------|
| | pnpm run dev # 运行 package.json 中 scripts 定义的 dev 脚本 |
| | pnpm dev # 简写(如果脚本名无冲突) |

全局命令

3. pnpm 的优势

节省磁盘空间
性能优化
安全性
  • 严格依赖隔离 :通过符号链接确保项目只能访问其声明的依赖,避免依赖污染。

    pnpm 是一个快速、节省磁盘空间的 Node.js 包管理工具,相比 npmyarn,它通过硬链接符号链接 技术优化了依赖安装效率。以下是 pnpm 的核心用法和常见场景说明:


    1. 安装 pnpm

    确保已安装 Node.js,然后通过以下命令安装 pnpm:

    bash

    |---|-----------------------------------|
    | | npm install -g pnpm |
    | | # 或通过核心包管理器(如 Homebrew、Scoop)安装 |


    2. 核心命令

    初始化项目

    bash

    |---|-------------------------------|
    | | pnpm init # 创建 package.json |

    安装依赖
  • 安装所有依赖 (根据 package.json):

    bash

    |---|------------------------------|
    | | pnpm install # 或简写为 pnpm i |

  • 安装特定包

    bash

    |---|------------------------------------------------|
    | | pnpm add lodash # 添加到 dependencies |
    | | pnpm add -D typescript # 添加到 devDependencies |
    | | pnpm add -g pnpm # 全局安装包 |

  • 安装指定版本

    bash

    |---|-------------------------|
    | | pnpm add react@18.2.0 |

  • 更新所有依赖

    bash

    |---|---------------------------|
    | | pnpm update # 或 pnpm up |

  • 更新特定包

    bash

    |---|----------------------|
    | | pnpm update lodash |

  • 查看全局安装的包

    bash

    |---|--------------------------|
    | | pnpm list -g --depth=0 |

  • 升级 pnpm 自身

    bash

    |---|--------------------|
    | | pnpm add -g pnpm |

  • 硬链接 :同一依赖的不同版本在全局存储(~/.pnpm-store)中只保存一份,项目通过符号链接引用。

  • 扁平化依赖 :避免 node_modules 嵌套过深(类似 yarn 的扁平化,但更高效)。

  • 并行安装:利用多线程加速依赖下载。

  • 增量安装:仅更新变更的依赖,而非全部重新安装。

  • 严格依赖隔离:通过符号链接确保项目只能访问其声明的依赖,避免依赖污染。

相关推荐
晴天162 天前
打造自己的 npm 包实战指南
前端·npm·node.js
西西小飞龙2 天前
npm vs pnpm
前端·npm·node.js
李游Leo5 天前
Node.js 开发环境安装与 npm/pnpm 国内镜像配置(Windows / macOS / Linux)
npm·node.js·pnpm·前端开发·开发环境
晴天1610 天前
Node.js 中 `npm install` 命令分析-Day30
前端·npm·node.js
_Rookie._11 天前
Package.json 的imports 和 exports
npm
泠曦れいひ11 天前
在当前项目中安装Vite
前端框架·npm·node.js
Joseph 乔11 天前
【NVM】node 和 nvm 卸载(安装 node & nvm & npm & cnpm & yarn 及配置)
npm·node.js
frjc11 天前
Node.js 与 npm 极简安装教程
前端·npm·node.js
北漂燕郊杨哥14 天前
npm 缓存占满 C 盘?三步把它迁到 D 盘(附验证与避坑)
缓存·npm·node
必须会一定会14 天前
Agent Handoff M5 发布验收:`CHANGES.md`、`npm pack`、`release:check` 与干净环境安装验证
前端·人工智能·npm·node.js·ai编程