JavaScript Toolchains
npm, pnpm, Yarn, Bun caches: hidden duplicates across projects
Package managers are fast because they cache aggressively. On multi-project Macs, these stores can consume massive space even when repos are removed.
Updated:
Read time: 6 min
Why this silently grows
Dependency tarballs and extracted package data are retained for speed. Using multiple managers across mono-repos, experiments, and old branches produces overlapping caches that keep growing in the background.
How Free Mac Space finds it
Free Mac Space groups these paths under a dedicated Node Modules category, including ~/.npm/_cacache, ~/Library/pnpm/store, ~/.pnpm-store, ~/.yarn/berry/cache, ~/.yarn/cache, ~/.bun/install/cache, and related ~/.cache directories.
How cleanup is handled
You can clean cache-heavy directories from one place after reviewing size and recency. Cleanup still follows the same guardrails: root validation, protected path checks, Trash-first action, and local audit logging.
Safety boundary
The app separates generic app cache scanning from dedicated language-tool caches to avoid accidental cross-category cleanup and make review decisions clearer.
Paths covered in Free Mac Space
- ~/.npm/_cacache
- ~/Library/pnpm/store
- ~/.pnpm-store
- ~/.yarn/berry/cache
- ~/.yarn/cache
- ~/.bun/install/cache
- ~/.cache/pnpm
Recommended monthly check
- Sort by directory size and remove stale manager stores first.
- Keep active project caches if you need faster rebuilds this week.
- Run another scan to confirm the expected reclaimed volume.
Step-by-step workflow
1. Identify why JavaScript Toolchains storage keeps growing
Dependency tarballs and extracted package data are retained for speed. Using multiple managers across mono-repos, experiments, and old branches produces overlapping caches that keep growing in the background.
2. Inspect the highest-impact paths first
Free Mac Space groups these paths under a dedicated Node Modules category, including ~/.npm/_cacache, ~/Library/pnpm/store, ~/.pnpm-store, ~/.yarn/berry/cache, ~/.yarn/cache, ~/.bun/install/cache, and related ~/.cache directories. Priority paths: ~/.npm/_cacache, ~/Library/pnpm/store, ~/.pnpm-store, ~/.yarn/berry/cache, ~/.yarn/cache, ~/.bun/install/cache, ~/.cache/pnpm.
3. Confirm the safety boundary before acting
The app separates generic app cache scanning from dedicated language-tool caches to avoid accidental cross-category cleanup and make review decisions clearer.
4. Apply a review-first cleanup workflow
You can clean cache-heavy directories from one place after reviewing size and recency. Cleanup still follows the same guardrails: root validation, protected path checks, Trash-first action, and local audit logging.
5. Monthly validation step 1
Sort by directory size and remove stale manager stores first.
6. Monthly validation step 2
Keep active project caches if you need faster rebuilds this week.
7. Monthly validation step 3
Run another scan to confirm the expected reclaimed volume.
Frequently asked questions
What hidden storage sources are covered for JavaScript Toolchains?
Primary sources include npm cache, pnpm store, Yarn cache, Bun install cache. Dependency tarballs and extracted package data are retained for speed. Using multiple managers across mono-repos, experiments, and old branches produces overlapping caches that keep growing in the background.
Which macOS paths should I inspect first?
Start with: ~/.npm/_cacache, ~/Library/pnpm/store, ~/.pnpm-store, ~/.yarn/berry/cache, ~/.yarn/cache, ~/.bun/install/cache, ~/.cache/pnpm. Free Mac Space groups these paths under a dedicated Node Modules category, including ~/.npm/_cacache, ~/Library/pnpm/store, ~/.pnpm-store, ~/.yarn/berry/cache, ~/.yarn/cache, ~/.bun/install/cache, and related ~/.cache directories.
How can I reduce this storage safely?
You can clean cache-heavy directories from one place after reviewing size and recency. Cleanup still follows the same guardrails: root validation, protected path checks, Trash-first action, and local audit logging. The app separates generic app cache scanning from dedicated language-tool caches to avoid accidental cross-category cleanup and make review decisions clearer.
What should the monthly review checklist look like?
Sort by directory size and remove stale manager stores first. Keep active project caches if you need faster rebuilds this week. Run another scan to confirm the expected reclaimed volume.