pnpm的基本用法

news/2025/2/26 9:47:51/

以下是 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.ppmy.cn/news/1574980.html

相关文章

【Python爬虫(52)】探秘Scrapy:项目结构与配置全解析

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…

【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动

当你需要对对象存储 OSS&#xff08;Object Storage Service&#xff09;中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时&#xff0c; 你可以通过设置 OSS 的事件通知规则&#xff0c;自定义关注的文件&#xff0c;并将 OSS 事件推送到轻量消息队列&#x…

Docker基础-常见命令

docker images -查看所有的本地镜像。 docker pull -把远端镜像拉取到本地。 docker rmi -删除镜像。 docker push -推到镜像仓库。 docker run -创建并运行容器&#xff08;自动化&#xff0c;如果发现镜像不存在会先去拉取&#xff0c; 拉取完了以后再去自动创建容器&am…

postman调用ollama的api

按照如下设置&#xff0c;不需要设置key 保持长会话的方法 # 首次请求 curl http://localhost:11434/api/generate -d {"model": "deepseek-r1:32b","prompt": "请永久记住&#xff1a;110&#xff0c;1-12&#xff0c;之后所有数学计算必…

Linux(CentOS)安装 MySQL

CentOS版本&#xff1a;CentOS 7 三种安装方式&#xff1a; 一、通过 yum 安装&#xff0c;最简单&#xff0c;一键安装&#xff0c;全程无忧。 二、通过 rpm 包安装&#xff0c;需具备基础概念及常规操作。 三、通过 gz 包安装&#xff0c;需具备配置相关操作。 --------…

Golang学习笔记_38——享元模式

Golang学习笔记_35——代理模式 Golang学习笔记_36——装饰器模式 Golang学习笔记_37——外观模式 文章目录 享元模式&#xff08;Flyweight Pattern&#xff09;详解一、核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、特点分析三、适用场景1. 文字编辑器2. 游戏开发3. …

【C++指南】一文总结C++类和对象【上】

&#x1f31f; 各位看官好&#xff0c;我是egoist2023&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C类和对象的语法知识 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给…

Django 视图函数中的 `response` 对象及类型扩写

Django 视图函数中的 response 对象及类型扩写 在 Django 中&#xff0c;视图函数不仅负责处理请求&#xff0c;还负责生成响应。响应可以是以多种格式返回给客户端的数据&#xff0c;包括 HTML 页面、重定向、JSON 数据、文件等。以下是关于 Django 中几种常见响应类型的详细…