pnpm-workspace.yaml

pnpm-workspace.yaml 是 pnpm 的"项目组织与调度中枢",告诉 pnpm:哪些目录是同一个 workspace,以及这些包之间如何协同工作。

定义哪些包属于同一个仓库

yaml 复制代码
packages:
  - packages/*
  - apps/*
  • packages/* 下面每个有 package.json 的目录,都是一个包
  • apps/* 下面每个 app 也是一个包

Workspace 内包本地互相引用

js 复制代码
packages/
  utils/
  ui/
apps/
  admin/

在 apps/admin/package.json 里:

json 复制代码
{
  "dependencies": {
    "@my/utils": "workspace:*"
  }
}

效果是:

  • 不去 npm 下载
  • 直接 软链接到本地 packages/utils
  • 改代码立刻生效

这是 monorepo 的灵魂能力。

依赖统一安装、统一锁定

在根目录执行pnpm install

pnpm 会:

  • 扫描 pnpm-workspace.yaml 里的所有包
  • 统一生成 一份 pnpm-lock.yaml
  • 所有包共享同一个依赖树

支持 catalog

pnpm-workspace.yaml 里可以这样写:

yaml 复制代码
catalog:
  vite: ^5.1.0
  vue: ^3.4.0
  typescript: ^5.3.3

子包中:

json 复制代码
"devDependencies": {
  "vite": "catalog:",
  "vue": "catalog:"
}

版本集中管理,企业级工程标配.

支持 workspace 协议(workspace:*)

js 复制代码
"@my/ui": "workspace:*"     // 任意版本
"@my/ui": "workspace:^"     // 遵循 semver
"@my/ui": "workspace:~"

批量执行命令

js 复制代码
pnpm -r build
pnpm -r test
pnpm -r lint
  • -r = recursive
  • 对 workspace 里的 所有包 执行
相关推荐
Jmyd012326 分钟前
Web端3D营销展厅技术实现路径:从素材上云到线索回流的数据链路
前端·3d·性能优化·三维数字化
砚凝霜40 分钟前
【软考信息安全】第二十二章 Web服务器安全分析与增强——Apache与IIS
服务器·前端·安全
u0111026753 小时前
JPG、PNG、WebP 怎么选?按透明度、体积和使用场景做判断
前端·javascript·vue.js·图像处理·ai作画
jerrywus3 小时前
让 AI 写完代码后交一份报告:我改造了 answer-me-with-html
前端·claude·cursor
派小心.4 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析
hhb_6184 小时前
一键生成数据看板,ECharts实战演示
前端·javascript·echarts
Java后端的Ai之路4 小时前
08_React组件API
前端·react.js·前端框架
小马不起床4 小时前
零基础玩转 FastAPI_09:前端基础工程构建
前端·状态模式·fastapi
风骏时光牛马5 小时前
用户管理模块接口开发
前端
彭亚川Allen6 小时前
从零手搓 RAG 之检索全流程,给大模型接上自己的知识库
前端·后端·ai编程