updates
is a CLI tool which checks for dependency updates. It is typically able to complete in less than a second. Supported dependencies are:
- npm via
package.json
- poetry via
pyproject.toml
- go via
go.mod
(checking only currently, disabled by default when directory is used)
With Node.js:
# check for updates
npx updates
# update package.json and install new dependencies
npx updates -u && npm i
With Bun:
# check for updates
bunx updates
# update package.json and install new dependencies
bunx updates -u && bun i
See --help
. Options that take multiple arguments can take them either via comma-separated value or by specifying the option multiple times.
If an option has a optional pkg
argument but none is given, the option will be applied to all packages instead.
All pkg
options support glob matching via picomatch or regex (on CLI, wrap the regex in slashes, e.g. '/^foo/'
).
The module uses global fetch
under the hood. In Node.js HTTP proxies from environment are not supported, but it's still possible to enable updates
to use them by installing the undici
dependency into your project.
The config file is used to configure certain options of the module. It be placed as updates.config.{js,ts,mjs,mts}
or config/updates.config.{js,ts,mjs,mts}
, relative to package.json
. For typescript to work in Node 22.6.0 and above, set NODE_OPTIONS="--experimental-strip-types"
in your environment.
import type {Config} from "updates";
export default {
exclude: [
"semver",
"@vitejs/*",
/^react(-dom)?$/,
],
} satisfies Config;
-
include
Array[String|Regexp]: Array of dependencies to include -
exclude
Array[String|Regexp]: Array of dependencies to exclude -
types
Array[String]: Array of dependency types -
registry
String: URL to npm registry
CLI arguments have precedence over options in the config file, except for include
and exclude
options which are merged.
© silverwind, distributed under BSD licence