pnpm的基本用法

news/2025/2/26 14:28:56

以下是 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 <包名>        # 查看为何需要某个依赖

pnpm__34">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             # 检查依赖是否完整

pnpm_vs_npmyarn__78">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.niftyadmin.cn/n/5868823.html

相关文章

跟着AI学vue第九章

第九章&#xff1a;Vue 生态与跨端开发 1. 深入探索 Vue 生态工具 Vue 生态就像是一个热闹的“软件小镇”&#xff0c;里面有各种各样的工具和资源&#xff0c;能帮助你把 Vue 项目打造得更好。 Vue CLI 高级用法 Vue CLI 就像是小镇里的“建筑规划师”&#xff0c;一开始它…

DeepSeek 提示词:基础结构

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

【设计原则】开闭原则

开闭原则&#xff08;OCP&#xff09;在C#中的实践&#xff1a;如何设计可扩展的代码 一、什么是开闭原则&#xff1f;二、未遵循开闭原则的案例三、用开闭原则重构代码四、进一步优化&#xff1a;动态加载操作五、开闭原则的优势六、适用场景七、总结 一、什么是开闭原则&…

【GO】学习笔记

目录 学习链接 开发环境 开发工具 GVM - GO多版本部署 GOPATH 与 go.mod go常用命令 环境初始化 编译与运行 GDB -- GNU 调试器 基本语法与字符类型 关键字与标识符 格式化占位符 基本语法 初始值&零值&默认值 变量声明与赋值 _ 下划线的用法 字…

halcon三维点云数据处理(二十七)remove_bin_for_3d_object_localization

目录 一、remove_bin_for_3d_object_localization代码第一部分二、remove_bin_for_3d_object_localization代码第二部分三、效果图一、remove_bin_for_3d_object_localization代码第一部分 1、读图构建3D模型。 2、一次二值化选取区域。 3、一次和背景差值选取区域。 4、在二维…

K8S能部署大数据集群吗?为什么?K8S的HPA功能可以作为大数据处理消息积压的问题(Kafka的分区)

K8S 即 Kubernetes&#xff0c;是可以部署大数据集群的 &#xff0c;原因如下 资源管理与调度优势&#xff1a;K8S 拥有强大的资源管理和调度能力。大数据集群运行时&#xff0c;不同组件对资源需求差异大&#xff0c;像计算密集型的 MapReduce 任务和存储密集型的 HDFS。K8S …

方法调用重点知识

方法里调方法&#xff0c;通过大括号内直接声明“方法名称&#xff08;&#xff09;”的方式&#xff0c;也是对象来调用方法的&#xff0c;只能调用本类拥有的方法&#xff0c;都是通过对象.来进行调用&#xff0c;只不过省略了this而已&#xff0c;别人即其他类的方法只能通过…

二、环 Ring

文章目录 一、环的定义二、环的分类与变种1、交换环2、含单位元的环3、零环4、非交换环5、整环6、域 三、环的性质与应用四、环与群和域的对比 一、环的定义 一个集合 R 被称为一个环&#xff0c;如果它满足以下条件&#xff1a; 对于 加法 满足&#xff1a; 闭合性&#xff1…