deno update
deno update [OPTIONS] [filters]...Update outdated dependencies.
Update dependencies to the latest semver compatible versions:
deno update
Update dependencies to the latest versions, ignoring semver requirements:
deno update --latest
This command is an alias of deno outdated --update
Filters can be used to select which packages to act on. Filters can include wildcards (*) to match multiple packages.
deno update --latest "@std/*"
deno update --latest "react*"
Note that filters act on their aliases configured in deno.json / package.json, not the actual package names: Given "foobar": "npm:react@17.0.0" in deno.json or package.json, the filter "foobar" would update npm:react to the latest version.
deno update --latest foobar
Filters can be combined, and negative filters can be used to exclude results:
deno update --latest "@std/*" "!@std/fmt*"
Specific version requirements to update to can be specified:
deno update @std/fmt@^1.0.2
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.
--recursive Jump to heading
Short flag: -r
Include all workspace members.
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.
更新依赖项 Jump to heading
默认情况下,update 子命令只会更新到符合 semver 兼容的版本(即不会更新到破坏性版本)。
$ deno update
更新了 1 个依赖项:
- jsr:@std/fmt 1.0.0 -> 1.0.3
如果要更新到最新版本(无论是否符合 semver 兼容),请添加 --latest 标志。
$ deno update --latest
更新了 3 个依赖项:
- 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
选择包 Jump to heading
update 子命令也支持选择要操作的包。
$ deno update --latest chalk
更新了 1 个依赖项:
- npm:chalk 4.1.2 -> 5.3.0
可以传入多个选择器,并且支持通配符 (*) 和排除 (!)。
例如,要更新所有带有 @std 作用域的包,除了 @std/fmt:
$ deno update --latest "@std/*" "!@std/fmt"
更新了 1 个依赖项:
- jsr:@std/async 1.0.1 -> 1.0.8
注意,如果使用通配符,通常需要用引号将参数括起来,以防止 shell 尝试展开它们。
更新到特定版本 Jump to heading
除了选择要更新的包之外,--update 标志还支持选择新的 版本,通过在版本号前添加 @ 指定。
❯ deno update chalk@5.2 @std/async@1.0.6
更新了 2 个依赖项:
- jsr:@std/async 1.0.1 -> 1.0.6
- npm:chalk 4.1.2 -> 5.2.0
工作区 Jump to heading
在工作区环境中,默认情况下,update 只会操作 当前 工作区成员。
例如,给定如下工作区:
{
"workspace": ["./member-a", "./member-b"]
}
从 ./member-a 目录运行
deno update
将只更新 ./member-a/deno.json 或 ./member-a/package.json 中列出的依赖项。
要包含所有工作区成员,请传入 --recursive 标志(也接受 -r 简写)
deno update --recursive
deno update --latest -r