Spec-Zone.ru › Deno 2

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API