deno add
Команда deno add добавляет зависимости в файл конфигурации проекта. Это псевдоним команды deno install [PACKAGES]. Подробнее о том, как Deno работает с зависимостями, см. в разделе Модули и зависимости.
Примеры
Добавление пакетов из JSR и npm:
deno add npm:express hono zod
deno add jsr:@std/path
По умолчанию имена пакетов без префикса считаются пакетами npm, поэтому префикс npm: больше не требуется в CLI. deno add express эквивалентно deno add npm:express. Для однозначного указания пакетов JSR по-прежнему нужен префикс jsr:. В спецификаторах import по-прежнему требуется префикс npm:.
По умолчанию зависимости добавляются с диапазоном версий, начинающимся с символа каретки (^). Используйте --save-exact, чтобы зафиксировать точную версию:
deno add --save-exact @std/path
При этом зависимость сохраняется без префикса ^ (например, 1.0.0 вместо ^1.0.0).
Где хранятся зависимости
Если в проекте есть файл package.json, пакеты npm будут добавлены в dependencies в package.json. В противном случае все пакеты добавляются в поле imports файла deno.json.
Чтобы принудительно записывать все зависимости в package.json (создав его при необходимости), передайте --package-json (Deno 2.8+):
deno add --package-json npm:express jsr:@std/path
Пакеты JSR, добавленные с помощью --package-json, записываются в совместимом с npm формате (npm:@jsr/...). Этот флаг также работает с командами deno install, deno remove и deno uninstall.
Чтобы сделать это поведением по умолчанию и не передавать флаг каждый раз, задайте параметр "preferPackageJson": true в deno.json.
deno add [OPTIONS] [packages]...Добавление зависимостей в файл конфигурации.
deno add express
Пакеты без префикса по умолчанию считаются пакетами npm. Используйте префикс jsr: для пакетов jsr:
deno add jsr:@std/path
Или добавьте сразу несколько зависимостей:
deno add express jsr:@std/path
Параметры
--allow-import, -I<IP_OR_HOSTNAME>необязательно
Разрешить импорт с удалённых хостов. При необходимости укажите разрешённые IP-адреса и имена хостов, а также порты. Значение по умолчанию: deno.land:443,jsr.io:443,esm.sh:443,raw.esm.sh:443,cdn.jsdelivr.net:443,raw.githubusercontent.com:443,gist.githubusercontent.com:443.
--allow-scripts<PACKAGE>необязательно
Разрешить запуск скриптов жизненного цикла npm для указанных пакетов. Примечание: скрипты будут выполняться только при использовании каталога node_modules (--node-modules-dir).
--deny-import<IP_OR_HOSTNAME>необязательно
Запретить импорт с удалённых хостов. При необходимости укажите запрещённые IP-адреса и имена хостов, а также порты.
--dev, -DДобавить пакет как зависимость для разработки (в devDependencies). Примечание: применяется только при добавлении в файл package.json.
--env-file<FILE>необязательно
Загрузить переменные окружения из локального файла. Используется только первая переменная окружения с заданным ключом. Существующие переменные окружения процесса не перезаписываются, поэтому значения переменных с уже существующими в окружении именами сохраняются. Если в файле .env указано несколько объявлений одной переменной окружения, применяется первое найденное. Порядок определяется последовательностью файлов, переданных в качестве аргументов.
--jsrСчитать, что имена пакетов без префикса обозначают пакеты jsr.
--lockfile-onlyВыполнить установку, обновив только файл блокировки.
--minimum-dependency-age<minimum-dependency-age>
(Нестабильный параметр) Возраст в минутах, длительность в формате ISO-8601 или абсолютная временная метка RFC3339 (например, «120» — два часа, «P2D» — два дня, «2025-09-16» — дата отсечения, «2025-09-16T12:00:00+00:00» — время отсечения, «0» — отключить).
--no-saveУстановить пакет или пакеты, не добавляя их в файл конфигурации.
--npmСчитать, что имена пакетов без префикса обозначают пакеты npm (по умолчанию).
--package-jsonПринудительно использовать package.json для управления зависимостями вместо deno.json.
--save-exactСохранить точную версию без символа каретки (^).
--save-optional, -OДобавить пакет как необязательную зависимость (в optionalDependencies). Примечание: применяется только при добавлении в файл package.json.
--unscopedИспользовать имя пакета без его области видимости в качестве псевдонима (например, jsr:@david/jsonc-morph добавляется как jsonc-morph). На пакеты с явно заданным псевдонимом это не влияет.
Параметры управления зависимостями
--frozen<BOOLEAN>необязательно
Завершить работу с ошибкой, если файл блокировки не актуален.
--lock<FILE>необязательно
Проверить указанный файл блокировки. (Если значение не задано, используется "./deno.lock".)
--no-lockОтключить автоматический поиск файла блокировки.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/add