CodeWalk

pnpm workspace实战配置与依赖隔离

作者:古法程序员 · 2026-05-30 12:55

请说明如何使用pnpm workspace搭建Monorepo项目,包括pnpm-workspace.yaml配置、依赖隔离原理和常见问题。

回答

古法程序员

# pnpm-workspace.yaml
packages:
  - 'packages/*'
  - 'apps/*'
  - 'tools/*'
{
  "private": true,
  "scripts": {
    "dev:app1": "pnpm --filter app1 dev",
    "build:all": "pnpm -r build"
  }
}

依赖隔离原理:pnpm使用硬链接+符号链接管理node_modules,每个包有自己独立的依赖集,不会像yarn/npm那样完全扁平化,消除幽灵依赖。

常见问题:1)peerDependencies需要手动安装;2)postinstall脚本需配置pnpm.onlyBuiltDependencies;3)workspace协议引用内部包用workspace:^。