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

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 集成),可以进一步探讨!


http://www.kler.cn/a/564284.html

相关文章:

  • 使用Google内核浏览器调试真机网页
  • Qt通过QPainter 绘制网格,以及滑动界面消除格子的方式来验证TP触摸屏的准确性
  • 计算机毕业设计Python+DeepSeek-R1大模型考研院校推荐系统 考研分数线预测 考研推荐系统 考研(源码+文档+PPT+讲解)
  • 四、表关系与复杂查询
  • 在已有的原生 App 里嵌入 Flutter 页面的方法
  • Redis源码剖析之GEO——Redis是如何高效检索地理位置的?
  • Unity探究预制体浮点数对Unity资源大小的影响
  • Spring MVC 程序开发(1)
  • Hadoop架构详解
  • 释放 Cursor 的全部潜能:快速生成智能 Cursor Rules
  • 16.6 LangChain LCEL 实战指南:从零构建生产级大模型应用
  • 手持云台32位单片机主控芯片
  • 反制无人机详细全面介绍
  • 【前端】XML,XPATH,与HTML的关系
  • Python实现GO鹅优化算法优化Catboost回归模型项目实战
  • 【北大Deepseck】最新2份pdf(附不限速链接) 系列-提示词工程和落地场景 DeepSeek与AIGC应用
  • 【3D格式转换SDK】HOOPS Exchange技术概览(一):3D 数据处理高效能与定制化
  • 自然语言处理NLP深探
  • HDFS分布式文件系统
  • 面试之《网络请求的资源如何强制不缓存》