Skip to content

rush add

Terminal window
rush add <package> [<package> ...] [flags]

Adds one or more packages to package.json, resolves the updated dependency tree, and installs everything. Equivalent to npm install <pkg> --save.


FlagShortDescription
--save-prod-PSave to dependencies (default)
--save-dev-DSave to devDependencies
--save-optional-OSave to optionalDependencies
--save-peerSave to peerDependencies
--save-exact / --exact-ESave exact version without ^ range prefix
FlagDefaultDescription
--forcefalseRe-download packages, bypassing the local store
--no-cachefalseDisable metadata cache and shared-store reuse
--os <os>detectedOverride OS for platform matching
--cpu <cpu>detectedOverride CPU for platform matching
FlagDefaultDescription
--ignore-scriptsfalseSkip lifecycle scripts after install
FlagDefaultDescription
--verbosefalsePrint detailed installation progress

By default Rush saves the package at ^<latest>. You can pin a specific version or range:

Terminal window
rush add express # → "express": "^4.18.2"
rush add express@4 # → "express": "^4.18.2" (latest in 4.x)
rush add [email protected] # → "express": "^4.18.2"
rush add [email protected] --save-exact # → "express": "4.18.2"
rush add express@">=4 <5" # → "express": ">=4 <5"
rush add express@latest # → "express": "^4.18.2" (dist-tags.latest)
rush add express@next # → "express": "^5.0.0" (dist-tags.next)

Add a runtime dependency:

Terminal window
rush add express zod

Add a dev dependency:

Terminal window
rush add typescript @types/node --save-dev

Add an optional dependency (install failure won’t error):

Terminal window
rush add fsevents --save-optional

Add a peer dependency (updates package.json only, no install):

Terminal window
rush add react@^19 --save-peer

Pin an exact version:

Terminal window
rush add [email protected] --save-exact

Add for a specific target platform:

Terminal window
rush add esbuild --os linux --cpu x64

  • package.json — the new package is added under the appropriate key
  • rush.lock — re-resolved and rewritten with the full updated tree
  • node_modules/ — the new package (and any new transitive deps) is extracted
  • node_modules/.bin/ — any new executables are symlinked