当前位置: 首页 > news >正文

pnpm的基本用法

以下是 pnpm 的核心命令和使用指南,涵盖从安装依赖到项目管理的常见操作:


1. 基础命令

(1) 安装依赖
pnpm install          # 安装 package.json 中的所有依赖
pnpm install <包名>   # 安装指定包(自动添加到 dependencies)
pnpm install <包名>@1.0.0  # 指定版本安装
(2) 添加依赖
pnpm add <包名>         # 添加开发依赖(保存到 devDependencies)
pnpm add <包名> --save-dev  # 显式添加开发依赖
pnpm add <包名> --save-peer  # 添加 peerDependencies
(3) 移除依赖
pnpm remove <包名>       # 移除依赖并更新 package.json
pnpm uninstall <包名>    # 同上(旧命令)
(4) 查看依赖
pnpm list             # 查看所有已安装的依赖(包括全局和项目依赖)
pnpm list --depth=0      # 仅显示顶层依赖
pnpm why <包名>        # 查看为何需要某个依赖

2. pnpm 特有功能

(1) 硬链接与存储管理
  • 硬链接节省空间:pnpm 通过硬链接复用相同依赖,显著减少磁盘占用。
  • 清理缓存
    pnpm store prune       # 清理无用依赖(需管理员权限)
    
(2) 快速运行脚本
pnpm run <脚本名>      # 执行 npm scripts(如 pnpm run dev)
pnpm run lint -- --fix  # 传递参数给脚本
(3) 查看版本和配置
pnpm -v               # 查看 pnpm 版本
pnpm config list       # 查看当前配置
pnpm config set <key> <value>  # 修改配置(如设置镜像源)

3. 高级用法

(1) 全局安装
pnpm add <包名> -g      # 全局安装工具(如 pnpm itself)
pnpm global add <包名>  # 同上
pnpm exec <命令>       # 使用全局安装的工具执行命令(如 pnpm exec eslint .)
(2) 查看依赖树
pnpm depgraph          # 生成依赖关系图(可视化需配合工具如 `pnpm depviz`)
(3) 修复依赖冲突
pnpm dedupe           # 自动修复重复依赖
pnpm check             # 检查依赖是否完整

4. pnpm vs npm/yarn 对比

命令pnpmnpm/yarn
安装依赖更快、占用更小磁盘传统方式,依赖独立存储
添加依赖支持 --save-peer 等选项语法略有不同
移除依赖自动清理残留文件需手动删除

5. 常见问题解决

(1) 权限问题
# Linux/macOS
sudo pnpm install

# Windows(推荐使用 PowerShell)
pnpm install --unsafe-perm
(2) 清除缓存
pnpm cache clean --force
(3) 查看详细日志
pnpm install --verbose  # 显示安装过程的详细日志

6. 配置文件

  • 项目配置:在项目根目录创建 pnpmfile.js 自定义构建逻辑。
  • 全局配置:修改 ~/.pnpmrc 文件(如设置镜像源):
    registry=https://registry.npm.taobao.org
    

总结

  • 推荐场景:大型项目、 monorepo、追求性能优化。
  • 学习资源:pnpm 官方文档、pnpm vs npm。

如果有具体需求(如多包管理、CI/CD 集成),可以进一步探讨!

相关文章:

  • 【设计师专属】智能屏幕取色器Pro|RGB/HEX双模式|快捷键秒存|支持导出文档|C++ QT
  • vue3的实用工具库@vueuse/core
  • 【Unity】URP管线Shader编程实例详解 (1) : 漩涡效果shader
  • 10道Redis常见面试题速通
  • 网卡与网口全解析:从基础到Linux高级管理
  • 基于GO语言的车牌识别api技术-港澳车牌文字识别
  • 【JavaScript Day23】jQuery事件绑定及动画
  • 深度学习进阶:构建多层神经网络
  • 从零开始:在 MacOS 中通过 Docker 部署跨平台 Redis 服务(支持 Ubuntu 迁移)
  • 基于Redis 的分布式 session 图解
  • 计算重建dMRI与GrondTruth之间的角度误差图(AAE)代码实现(pytorch)
  • Java 网络协议面试题答案整理,最新面试题
  • B站pwn教程笔记-3
  • 记录锁,间隙锁,Next-Key Lock
  • 2025数学建模竞赛汇总,错过再等一年
  • 2025-02-25 学习记录--C/C++-用C语言实现删除字符串中的子串
  • ollama无法通过IP:11434访问
  • 第9章 机器学习与统计模型
  • 《OpenCV》—— 背景建模
  • 精美登录注册UI,登录页面设计模板
  • “千馆万员讲家风”活动举办,小讲解员登台讲述家风故事
  • 外交部:中巴各领域合作非常密切,不针对第三方
  • 福建福州马尾区区长王刚跨省份调任新疆生产建设兵团国资委主任
  • 上海电视节评委会名单公布,陈宝国担任电视剧评委会主席
  • 住建部:2019年至2024年,全国累计开工改造老旧小区28万个
  • 人民日报任平:从“地瓜经济”理论到民营经济促进法,读懂中国经济的成长壮大之道