Skip to main content

deno outdated

Check which dependencies in your project have newer versions available.

Basic usage

deno outdated
This scans your project’s dependencies and displays which packages have updates available.

Syntax

deno outdated [OPTIONS]

Features

The deno outdated command:
  • Checks dependencies in deno.json imports
  • Checks dependencies in package.json (for npm packages)
  • Shows current versions and available updates
  • Works with JSR, npm, and HTTP imports

Example output

Checking for outdated dependencies...

Package               Current    Latest    Latest compatible
@std/assert          0.220.0    0.225.0   0.225.0
@std/path            0.220.0    0.225.0   0.225.0
express (npm)        ^4.18.0    4.19.2    4.19.2

3 dependencies are outdated

Dependency sources

JSR packages

For JSR packages specified in deno.json:
deno.json
{
  "imports": {
    "@std/assert": "jsr:@std/assert@^0.220.0",
    "@std/path": "jsr:@std/path@^0.220.0"
  }
}

npm packages

For npm packages in deno.json or package.json:
deno.json
{
  "imports": {
    "express": "npm:express@^4.18.0"
  }
}

HTTP imports

HTTP imports with version specifiers:
deno.json
{
  "imports": {
    "oak": "https://deno.land/x/[email protected]/mod.ts"
  }
}

Update strategies

Review the outdated packages and manually update deno.json:
{
  "imports": {
    "@std/assert": "jsr:@std/assert@^0.225.0"
  }
}
Then run:
deno install
Update specific packages with deno add:
deno add @std/assert@latest
deno add npm:express@latest
After updating versions, update the lock file:
deno cache --reload --lock=deno.lock --lock-write src/main.ts

Checking specific packages

While deno outdated checks all dependencies, you can focus on specific ones:
# Check outdated, then update specific package
deno outdated
deno add @std/assert@latest

Integration with CI/CD

Run in CI to detect outdated dependencies:
.github/workflows/check-deps.yml
name: Check Dependencies

on:
  schedule:
    - cron: '0 0 * * 0'  # Weekly

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: denoland/setup-deno@v1
      - run: deno outdated

Understanding version compatibility

The output shows three version columns:
ColumnDescription
CurrentVersion currently specified in your config
LatestNewest version available
Latest compatibleNewest version that matches your version constraint
For example, if you specify ^4.18.0:
  • Current: 4.18.0
  • Latest: 5.0.0
  • Latest compatible: 4.19.2 (satisfies ^4.18.0)

Best practices

Regular checks

Run deno outdated regularly to stay current

Test updates

Test your app after updating dependencies

Review changelogs

Check package changelogs before updating

Update incrementally

Update one package at a time for easier debugging

Build docs developers (and LLMs) love