pnpm 是一个快速、节省磁盘空间的包管理器,相比 npm 和 yarn,它具有以下优势:
空间高效:使用硬链接和符号链接共享依赖,避免重复安装相同版本的包
安装速度快:比 npm 和 yarn 更快的安装速度
严格的依赖树:避免幽灵依赖问题
更好的安全性:通过隔离的方式处理依赖
安装 pnpm
在开始使用 pnpm 之前,需要先在您的系统上安装它:
通过 npm 安装
npm install -g pnpm
通过 Homebrew 安装(macOS)
brew install pnpm
验证安装
安装完成后,可以通过以下命令验证安装是否成功:
pnpm --version
在项目中使用 pnpm
1. 安装项目依赖
删除现有的 node_modules 文件夹和 package-lock.json 文件(如果存在),然后使用 pnpm 安装依赖:
# 删除 node_modules 和 package-lock.jsonrm-rf node_modules package-lock.json# 安装依赖pnpm install
执行完 pnpm install 后,您会看到项目中生成了 pnpm-lock.yaml 文件,这是 pnpm 的锁文件,类似于 npm 的 package-lock.json。
2. 运行项目脚本
您可以使用 pnpm 运行 package.json 中定义的所有脚本,方式与 npm 类似,只需将 npm 替换为 pnpm:
# 开发环境运行pnpm dev# 测试环境运行pnpm dev:test# 生产环境构建pnpm build# 测试环境构建pnpm build:test# 预览构建结果pnpm preview
3. 添加新依赖
# 添加生产依赖pnpm add # 添加开发依赖pnpm add -D # 添加全局依赖pnpm add -g
4. 删除依赖
pnpm remove
5. 更新依赖
# 更新指定依赖pnpm update # 更新所有依赖pnpm update
项目特定配置
项目根目录下的 .npmrc 文件包含了以下 pnpm 配置:
# 使用 pnpm 作为包管理器save-prefix=''# 自动安装 peer dependenciesauto-install-peers=true# 严格对等依赖管理strict-peer-dependencies=false# 启用硬链接node-linker=hoisted# 配置依赖源registry=https://registry.npm.taobao.org
这些配置确保了 pnpm 可以正确处理项目依赖,避免常见的依赖问题。
VS Code 集成
为了让 VS Code 更好地支持 pnpm,建议安装以下扩展:
PNPM Intellisense - 提供 pnpm 依赖的智能提示">PNPM Intellisense - 提供 pnpm 依赖的智能提示
常见问题及解决方案
1. 依赖安装失败
如果遇到依赖安装失败的情况,可以尝试以下方法:
# 清除 pnpm 缓存pnpm store prune# 重新安装依赖pnpm install
2. 与 npm/yarn 的兼容性问题
由于 pnpm 使用不同的依赖存储方式,可能会出现一些与 npm/yarn 的兼容性问题。如果遇到这类问题,可以尝试:
检查 .npmrc 中的 node-linker 配置是否设置为 hoisted
确保所有团队成员都使用相同的包管理器
3. 脚本执行权限问题(macOS/Linux)
如果在执行脚本时遇到权限问题,可以尝试:
chmod+x node_modules/.bin/*
pnpm 官方文档">查阅 pnpm 官方文档
























