deno.com
本页内容

deno outdated

命令行用法

deno outdated [OPTIONS] [filters]...

查找和更新过期的依赖。默认情况下,仅显示过期的依赖。

显示过期的依赖

deno outdated
deno outdated --compatible

将依赖更新到最新的 semver 兼容版本

deno outdated --update

将依赖更新到最新版本,忽略 semver 要求

deno outdated --update --latest

过滤器可用于选择要操作的包。过滤器可以包含通配符 (*) 以匹配多个包。

deno outdated --update --latest "@std/*"
deno outdated --update --latest "react*"

请注意,过滤器作用于在 deno.json / package.json 中配置的别名,而不是实际的包名称:给定 deno.json 或 package.json 中的 "foobar": "npm:[email protected]",过滤器 "foobar" 将把 npm:react 更新到最新版本。

deno outdated --update --latest foobar

过滤器可以组合使用,并且可以使用负向过滤器排除结果

deno outdated --update --latest "@std/*" "!@std/fmt*"

可以指定要更新到的特定版本要求

deno outdated --update @std/fmt@^1.0.2

依赖管理选项 跳转到标题

--lock 跳转到标题

检查指定的 lock 文件。(如果未提供值,则默认为 "./deno.lock")。

--no-lock 跳转到标题

禁用 lock 文件的自动发现。

选项 跳转到标题

--compatible 跳转到标题

仅输出满足 semver 要求的版本。

--latest 跳转到标题

更新到最新版本,无论 semver 约束如何。

--recursive 跳转到标题

短标记: -r

包括所有工作区成员。

--update 跳转到标题

短标记: -u

更新依赖版本。

检查过期的依赖 跳转到标题

outdated 子命令检查 deno.jsonpackage.json 文件中列出的 NPM 和 JSR 依赖的新版本,并显示可以更新的依赖。完全支持工作区,包括一些成员使用 package.json 而另一些成员使用 deno.json 的工作区。

例如,假设一个项目有一个 deno.json 文件

{
  "imports": {
    "@std/fmt": "jsr:@std/fmt@^1.0.0",
    "@std/async": "jsr:@std/[email protected]",
    "chalk": "npm:chalk@4"
  }
}

以及一个 lockfile,其中 @std/fmt 的版本为 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  │
└────────────────┴─────────┴────────┴────────┘

Update 列列出了最新的 semver 兼容版本,而 Latest 列列出了最新版本。

请注意,即使没有 semver 兼容的版本可以更新到,jsr:@std/async 也会被列出。如果您只想显示具有新的兼容版本的包,您可以传递 --compatible 标志。

$ deno outdated --compatible
┌────────────────┬─────────┬────────┬────────┐
│ Package        │ Current │ Update │ Latest │
├────────────────┼─────────┼────────┼────────┤
│ jsr:@std/fmt   │ 1.0.0   │ 1.0.3  │ 1.0.3  │
└────────────────┴─────────┴────────┴────────┘

jsr:@std/fmt 仍然被列出,因为它可以在兼容的情况下更新到 1.0.3,但 jsr:@std/async 不再显示。

更新依赖 跳转到标题

outdated 子命令还可以使用 --update 标志更新依赖。默认情况下,它只会将依赖更新到 semver 兼容版本(即,它不会更新到破坏性版本)。

$ deno outdated --update
Updated 1 dependency:
 - jsr:@std/fmt 1.0.0 -> 1.0.3

要更新到最新版本(无论是否与 semver 兼容),请传递 --latest 标志。

$ 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

选择包 跳转到标题

outdated 子命令还支持选择要操作的包。这在使用或不使用 `--update` 标志的情况下均有效。

$ deno outdated --update --latest chalk
Updated 1 dependency:
 - npm:chalk 4.1.2 -> 5.3.0

可以传递多个选择器,并且还支持通配符 (*) 或排除项 (!)。

例如,要更新所有具有 @std 作用域的包,但 @std/fmt 除外

$ deno outdated --update --latest "@std/*" "!@std/fmt"
Updated 1 dependency:
 - jsr:@std/async 1.0.1 -> 1.0.8

请注意,如果您使用通配符,您可能需要将参数用引号括起来,以防止 shell 尝试扩展它们。

更新到特定版本 跳转到标题

除了选择要更新的包之外,--update 标志还支持选择新的版本,在 @ 之后指定版本。

❯ deno outdated --update [email protected] @std/[email protected]
Updated 2 dependencies:
 - jsr:@std/async 1.0.1 -> 1.0.6
 - npm:chalk      4.1.2 -> 5.2.0

工作区 跳转到标题

在工作区设置中,默认情况下 outdated 将仅对当前工作区成员进行操作。

例如,给定一个工作区

{
  "workspace": ["./member-a", "./member-b"]
}

运行

deno outdated

./member-a 目录将仅检查 ./member-a/deno.json./member-a/package.json 中列出的过期的依赖。

要包括所有工作区成员,请传递 --recursive 标志(也接受 -r 简写)

deno outdated --recursive
deno outdated --update --latest -r

您找到所需的内容了吗?

隐私政策