On this page
deno outdated
Checking for outdated dependencies Jump to heading
The outdated subcommand checks for new versions of NPM and JSR dependencies
listed in deno.json or package.json
files, and displays dependencies that could be updated. Workspaces are fully
supported, including workspaces where some members use package.json and others
use deno.json.
For example, take a project with a deno.json file:
{
"imports": {
"@std/fmt": "jsr:@std/fmt@^1.0.0",
"@std/async": "jsr:@std/async@1.0.1",
"chalk": "npm:chalk@4"
}
}
and a lockfile that has @std/fmt at version 1.0.0.
deno outdated
┌────────────────┬─────────┬────────┬────────┐
│ Package │ Current │ Update │ Latest │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/fmt │ 1.0.0 │ 1.0.3 │ 1.0.3 │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/async │ 1.0.1 │ 1.0.1 │ 1.0.8 │
├────────────────┼─────────┼────────┼────────┤
│ npm:chalk │ 4.1.2 │ 4.1.2 │ 5.3.0 │
└────────────────┴─────────┴────────┴────────┘
The Update column lists the newest semver-compatible version, while the
Latest column lists the latest version.
Notice that jsr:@std/async is listed, even though there is no
semver-compatible version to update to. If you would prefer to only show
packages that have new compatible versions you can pass the --compatible flag.
deno outdated --compatible
┌────────────────┬─────────┬────────┬────────┐
│ Package │ Current │ Update │ Latest │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/fmt │ 1.0.0 │ 1.0.3 │ 1.0.3 │
└────────────────┴─────────┴────────┴────────┘
jsr:@std/fmt is still listed, since it could be compatibly updated to 1.0.3,
but jsr:@std/async is no longer shown.
Updating dependencies Jump to heading
The outdated subcommand can also update dependencies with the --update flag.
By default, it will only update dependencies to semver-compatible versions (i.e.
it won't update to a breaking version).
deno outdated --update
Updated 1 dependency:
- jsr:@std/fmt 1.0.0 -> 1.0.3
To update to the latest versions (regardless of whether it's semver compatible),
pass the --latest flag.
deno outdated --update --latest
Updated 3 dependencies:
- jsr:@std/async 1.0.1 -> 1.0.8
- jsr:@std/fmt 1.0.0 -> 1.0.3
- npm:chalk 4.1.2 -> 5.3.0
Selecting packages Jump to heading
The outdated subcommand also supports selecting which packages to operate on.
This works with or without the --update flag.
deno outdated --update --latest chalk
Updated 1 dependency:
- npm:chalk 4.1.2 -> 5.3.0
Multiple selectors can be passed, and wildcards (*) or exclusions (!) are
also supported.
For instance, to update all packages with the @std scope, except for
@std/fmt:
deno outdated --update --latest "@std/*" "!@std/fmt"
Updated 1 dependency:
- jsr:@std/async 1.0.1 -> 1.0.8
Note that if you use wildcards, you will probably need to surround the argument in quotes to prevent the shell from trying to expand them.
Updating to specific versions Jump to heading
You can also select a specific version to update to by appending it after @.
deno outdated --update chalk@5.2 @std/async@1.0.6
Updated 2 dependencies:
- jsr:@std/async 1.0.1 -> 1.0.6
- npm:chalk 4.1.2 -> 5.2.0
Workspaces Jump to heading
In a workspace setting, by default outdated will only operate on the current
workspace member.
For instance, given a workspace:
{
"workspace": ["./member-a", "./member-b"]
}
Running
deno outdated
from the ./member-a directory will only check for outdated dependencies listed
in ./member-a/deno.json or ./member-a/package.json.
To include all workspace members, pass the --recursive flag (the -r
shorthand is also accepted).
deno outdated --recursive
deno outdated --update --latest -r
Options Jump to heading
--compatible Jump to heading
Only consider versions that satisfy semver requirements.
--interactive Jump to heading
Short flag: -i
Interactively select which dependencies to update.
--latest Jump to heading
Consider the latest version, regardless of semver constraints.
--lockfile-only Jump to heading
Install only updating the lockfile.
--minimum-dependency-age Jump to heading
(Unstable) The age in minutes, ISO-8601 duration or RFC3339 absolute timestamp (e.g. '120' for two hours, 'P2D' for two days, '2025-09-16' for cutoff date, '2025-09-16T12:00:00+00:00' for cutoff time, '0' to disable).
--recursive Jump to heading
Short flag: -r
Include all workspace members.
--update Jump to heading
Short flag: -u
Update dependency versions.
Dependency management options Jump to heading
--frozen Jump to heading
Error out if lockfile is out of date.
--lock Jump to heading
Check the specified lock file. (If value is not provided, defaults to "./deno.lock").
--no-lock Jump to heading
Disable auto discovery of the lock file.