Skip to content

Global cache

Rush maintains a shared store at ~/.rush/store/ that persists extracted packages across all projects on your machine. When the same package version is needed by multiple projects, it is extracted only once and reused — no redundant downloads or disk duplication.


~/.rush/store/
├── express@4.18.2/ ← extracted once, shared across all projects
├── typescript@5.3.3/
└── lodash@4.17.21/

Inside each project, node_modules/.rush/ mirrors the same structure as a working set for that install.


On each install, Rush checks three layers in order:

  1. Integrity sentinel — if node_modules/.rush/<name>@<version>/.rush-integrity matches the expected hash, the package is already valid. Skip everything.
  2. Global store — if the package exists in ~/.rush/store/, copy it in without downloading.
  3. Registry — download the tarball, verify SHA-512 integrity, extract, and write to the global store.

This means a cold install on a new project is fast if you’ve installed the same packages before in any other project.


FlagEffect
--forceRe-download and re-extract all packages, ignoring the store and sentinels
--no-cacheDisable both the metadata (packument) cache and shared-store reuse for this run
Terminal window
rush install --force # full refresh
rush install --no-cache # no registry cache, no store reuse

Packuments (the JSON registry index for each package) are cached separately at:

~/.rush/registry-cache/<name>.json

This avoids repeated HTTP round-trips when resolving the same package across multiple installs. --no-cache bypasses this too.