A speedy way to update all packages in a Node/Bun project, written in Rust.
Bun
bun --bun add -d nrush@latest # Ensures the latest version is used
nrush -i
Node
npx nrush@latest -i
Commands:
nrush about
- Display comprehensive information about NRush.nrush help
- Provide a usage guide for NRush. Primarily, this section.
Arguments:
(Arguments are applicable only if no commands are supplied and only nrush
is executed.)
-
Update Options (
-u
/--update
):- Automatically updates all dependencies without user interaction.
-
Interactive Mode (
-i
/--interactive
)- User can select which packages to update. Defaults to this if both
-u
and-i
are supplied.
- User can select which packages to update. Defaults to this if both
-
Include (
--include <dev,peer>
):- Include
dev
and/orpeer
dependencies in the update process.
- Include
-
Path Specification (
-p <path>
/--path <path>
):- Specify the path to a
package.json
file. The default is the current directory.
- Specify the path to a
-
Skip Ranges in Versioning (
--skip-ranges
):- Skips version ranges in package.json. Default is
false
, preserving them. - Example:
^1.0.0
will be updated to2.0.0
if--skip-ranges
is supplied.
- Skips version ranges in package.json. Default is
-
Update Any Version (
--update-any
):- Updates
*
versions in package.json. Default isfalse
, maintaining them. - Example:
*
will be updated to2.0.0
if--update-any
is supplied.
- Updates
-
SOON: Semver Constraint (
-s <semver>
/--semver <semver>
):- Specify a maximum semver range to update to. Choose either
major
,minor
, orpatch
. Default ismajor
. - This currently does nothing.
- Specify a maximum semver range to update to. Choose either
By executing nrush
without any arguments or commands, a list of updatable packages will be displayed, and you'll be prompted to install them.
I made this as a personal alternative to npm-check-updates
, mostly as a challenge to write a less feature-packed,
faster version that checks the packages concurrently, resulting in 🔥speed🔥.
Concurrency, baby.
Please do. I don't really do Rust that often, and all of this was done in 30 minutes.
- Full feature set from npm-check-updates
- nrush is short for npm rush, as in "please get me up to date"
- The base
omznc/nrush
package figures out your OS architecture and downloads the correct binary. It useschild_process
which you could find alarming, but hey, that's what open-source is for.- These are the underlying binaries: