一个仓库,一套工具链
pnpm 工作区让每个包共享同一锁文件、同一 TypeScript 配置和同一测试运行器。跨包依赖使用 workspace 协议,本地编辑立即可见,无需发布往返。
# pnpm-workspace.yaml
packages:
- "packages/*"
- "apps/*"
接好依赖
用 workspace:^ 引用本地包,pnpm 会将其符号链接到消费方。logger 的改动在下一次构建时对 web 应用立即可见,无需升版本。
{
"dependencies": { "@repo/logger": "workspace:^" }
}
预期结果
pnpm -r build 按拓扑序构建,@repo/logger 的改动会触发 apps/web 重建,锁文件在全工作区唯一且共享。发布前需将 workspace 协议替换为真实版本号。