deno outdated
Использование в командной строке
deno outdated [OPTIONS] [filters]...Поиск и обновление устаревших зависимостей. По умолчанию устаревшие зависимости только отображаются.
Отображение устаревших зависимостей:
deno outdated
deno outdated --compatible
Обновление зависимостей:
deno outdated --update
deno outdated --update --latest
deno outdated --update
Можно использовать фильтры для выбора пакетов, на которые будет действовать команда. Фильтры могут включать подстановочные знаки (*) для соответствия нескольким пакетам.
deno outdated --update --latest "@std/*"
deno outdated --update --latest "react*"
Обратите внимание, что фильтры действуют на свои псевдонимы, настроенные в deno.json/package.json, а не на фактические имена пакетов: если в deno.json или package.json указано «foobar»: «npm:react@17.0.0», фильтр «foobar» обновит npm:react до последней версии.
deno outdated --update --latest foobar
Фильтры можно комбинировать, и можно использовать отрицательные фильтры для исключения результатов:
deno outdated --update --latest "@std/*" "!@std/fmt*"
Можно указать конкретные требования к версиям для обновления:
deno outdated --update @std/fmt@^1.0.2
Параметры управления зависимостями
--lock
Проверить указанный файл блокировки. (Если значение не указано, используется «./deno.lock»)
--no-lock
Отключить автоматическое обнаружение файла блокировки.
Параметры
--compatible
Выводить только версии, удовлетворяющие требованиям semver.
--latest
Обновить до последней версии, независимо от ограничений semver.
--recursive
Короткая форма: -r
включать всех участников рабочей области.
--update
Короткая форма: -u
Обновить версии зависимостей.
Проверка устаревших зависимостей
Подкоманда outdated проверяет наличие новых версий зависимостей NPM и JSR, перечисленных в файлах deno.json или package.json, и отображает зависимости, которые можно обновить. Полностью поддерживаются рабочие области, включая рабочие области, где некоторые члены используют package.json, а другие — deno.json.
Например, рассмотрим проект с файлом deno.json:
{
"imports": {
"@std/fmt": "jsr:@std/fmt@^1.0.0",
"@std/async": "jsr:@std/async@1.0.1",
"chalk": "npm:chalk@4"
}
}
и файлом блокировки, в котором @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 — последнюю версию.
Обратите внимание, что jsr:@std/async отображается, даже если нет совместимой с semver версии для обновления. Если вы хотите отображать только пакеты, для которых существуют новые совместимые версии, вы можете передать флаг --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
Можно передать несколько селекторов, а также поддерживаются подстановочные знаки (*) или исключения (!).
Например, чтобы обновить все пакеты со scope @std, за исключением @std/fmt:
$ deno outdated --update --latest "@std/*" "!@std/fmt"
Updated 1 dependency:
- jsr:@std/async 1.0.1 -> 1.0.8
Обратите внимание, что если вы используете подстановочные знаки, вам, вероятно, нужно заключить аргумент в кавычки, чтобы предотвратить попытку оболочки расширить их.
Обновление до конкретных версий
Помимо выбора пакетов для обновления, флаг --update также поддерживает выбор новой версии, указав версию после @.
❯ 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
Рабочие области
В настройке рабочей области по умолчанию 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
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/outdated