pnpm
是一个快速、节省磁盘空间的 Node.js 包管理工具,相比 npm
和 yarn
,它通过硬链接 和符号链接 技术优化了依赖安装效率。以下是 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 [email protected]
|
更新依赖
-
更新所有依赖 :
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 包管理工具,相比npm
和yarn
,它通过硬链接 和符号链接 技术优化了依赖安装效率。以下是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 [email protected]
| -
更新所有依赖 :
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 的扁平化,但更高效)。 -
并行安装:利用多线程加速依赖下载。
-
增量安装:仅更新变更的依赖,而非全部重新安装。
-
严格依赖隔离:通过符号链接确保项目只能访问其声明的依赖,避免依赖污染。