penpot/plugins/pnpm-workspace.yaml
Andrey Antukh 5c474939ac 🔧 Pin all pnpm workspaces to one shared pnpm store
Set storeDir in every pnpm-workspace.yaml: `.pnpm-store` at the repo
root and `../.pnpm-store` in the ten module workspaces, so all of them
resolve to <repo>/.pnpm-store. pnpm resolves the value against the
workspace root, and nested workspaces do not inherit settings, which
had left the root workspace and the modules on two different stores.

Add scripts/clean-node-modules: removes every workspace node_modules
in one pass (ignores external/ and .opencode/), keeps the shared store
unless --store removes it too.

Verified: every workspace resolves the same store path; reinstalls
after a full clean reuse the cache with zero downloads;
frozen-lockfile installs pass in all 11 workspaces with no lockfile
changes; the frontend storybook suite stays green.

AI-assisted-by: omen-alpha
2026-09-09 08:04:11 +02:00

44 lines
1001 B
YAML

storeDir: ../.pnpm-store
packages:
- 'apps/**'
- 'libs/**'
allowBuilds:
'@parcel/watcher': false
core-js: true
esbuild: true
lmdb: false
msgpackr-extract: false
puppeteer: false
sharp: true
workerd: true
linkWorkspacePackages: true
minimumReleaseAgeExclude:
- minimatch@10.2.1 || 10.2.3
- ajv@8.18.0
- lodash@4.17.24
- esbuild@0.28.1
- '@babel/core@7.29.1'
- undici@7.28.0
- brace-expansion@1.1.16 || 1.1.17 || 1.1.18 || 5.0.8 || 5.0.9
- '@hono/node-server@2.0.5'
- fast-uri@3.1.5
overrides:
'@babel/core@<=7.29.0': ^7.29.1
'@hono/node-server@<2.0.5': ^2.0.5
ajv@>=7.0.0-alpha.0 <8.18.0: ^8.18.0
brace-expansion@>=4.0.0 <5.0.9: ^5.0.9
lodash@<=4.17.23: ^4.17.24
lodash@>=4.0.0 <=4.17.23: ^4.17.24
minimatch@>=10.0.0 <10.2.1: ^10.2.1
minimatch@>=10.0.0 <10.2.3: ^10.2.3
peerDependencyRules:
allowedVersions:
"eslint-plugin-import>eslint": "10.6.0"
"eslint-plugin-jsx-a11y>eslint": "10.6.0"
"eslint-plugin-react>eslint": "10.6.0"