deno install
deno install устанавливает зависимости и кеширует их для вашего проекта. Подробнее о том, как Deno обрабатывает модули, см. в разделе Модули и зависимости.
Примеры
deno install
Используйте эту команду, чтобы установить все зависимости, определённые в deno.json и/или package.json.
Зависимости будут установлены в глобальный кеш, но если в вашем проекте есть файл package.json, будет также создан локальный каталог node_modules.
deno install [PACKAGES]
Используйте эту команду, чтобы установить определённые пакеты и добавить их в deno.json или package.json.
deno install jsr:@std/testing npm:express
По умолчанию имена пакетов без префикса считаются npm-пакетами, поэтому префикс npm: в командной строке больше не требуется. deno install express эквивалентно deno install npm:express. Для пакетов JSR по-прежнему нужен префикс jsr:, чтобы избежать неоднозначности. Префикс npm: по-прежнему требуется в спецификаторах import.
Также можно использовать deno add — это псевдоним для deno install [PACKAGES]
Если в вашем проекте есть файл package.json, пакеты из npm будут добавлены в dependencies в package.json. В противном случае все пакеты будут добавлены в deno.json.
deno install --os и --arch
Начиная с Deno 2.8, deno install принимает флаги --os и --arch, позволяющие устанавливать npm-пакеты для платформы, отличной от той, на которой выполняется команда. Это особенно полезно для предварительной установки пакетов с нативными бинарными файлами — например, при сборке артефакта для развёртывания на компьютере разработчика с macOS, если впоследствии он будет работать на Linux/arm64.
Флаги принимают значения, совместимые с Node.js, — те же строки, которые возвращают process.platform и process.arch.
# Install npm packages for linux/arm64
deno install --os linux --arch arm64
# Install for windows/x64
deno install --os win32 --arch x64
# Override just the architecture; --os defaults to the current system
deno install --arch x64
--os и --arch работают только при локальной установке и несовместимы с --global.
deno install --package-json
По умолчанию Deno выбирает файл конфигурации для записи (deno.json или package.json) в зависимости от того, какой из них находится ближе всего к текущему рабочему каталогу. Начиная с Deno 2.8, --package-json принудительно записывает зависимости в package.json независимо от наличия поблизости deno.json. Если файла package.json ещё нет, он будет создан.
deno install --package-json npm:express jsr:@std/path
Пакеты JSR, добавленные с помощью --package-json, записываются в совместимом с npm формате (npm:@jsr/...). Этот же флаг работает с deno add, deno remove и deno uninstall.
Чтобы использовать это поведение по умолчанию, не указывая флаг каждый раз, задайте "preferPackageJson": true в deno.json.
deno install --entrypoint [FILES]
Используйте эту команду, чтобы установить все зависимости, используемые в указанных файлах, а также зависимости этих зависимостей.
Это особенно полезно, если в коде используются спецификаторы jsr:, npm:, http: или https: и нужно кешировать все зависимости до развёртывания проекта.
import * as colors from "jsr:@std/fmt/colors";
import express from "npm:express";
deno install -e main.js
Download jsr:@std/fmt
Download npm:express
Чтобы создать локальный каталог node_modules, можно передать флаг --node-modules-dir=auto.
Некоторые зависимости могут работать некорректно без локального каталога node_modules.
deno install --global [PACKAGE_OR_URL]
Используйте эту команду, чтобы установить указанный пакет или скрипт в виде глобально доступного бинарного файла в системе.
Эта команда создаёт небольшой исполняемый сценарий оболочки, который запускает deno с указанными флагами CLI и главным модулем. Он размещается в корневом каталоге установки.
Пример:
deno install --global --allow-net --allow-read jsr:@std/http/file-server
Download jsr:@std/http/file-server...
✅ Successfully installed file-server.
/Users/deno/.deno/bin/file-server
Чтобы изменить имя исполняемого файла, используйте -n/--name:
deno install -g -N -R -n serve jsr:@std/http/file-server
По умолчанию имя исполняемого файла определяется автоматически:
- Используется имя файла без расширения из пути URL. В приведённом выше примере получится 'file-server'.
- Если имя файла без расширения является общим, например 'main', 'mod', 'index' или 'cli', а у пути нет родительского каталога, используется имя файла из родительского пути. В противном случае сохраняется общее имя.
- Если в итоговом имени есть суффикс '@...', он удаляется.
Чтобы изменить корневой каталог установки, используйте --root:
deno install -g -N -R --root /usr/local/bin jsr:@std/http/file-server
Корневой каталог установки определяется в следующем порядке приоритета:
-
Параметр
--root -
Переменная среды
DENO_INSTALL_ROOT $HOME/.deno
Исполняемые файлы помещаются в подкаталог bin корневого каталога установки, если только путь корневого каталога уже не заканчивается на bin — в этом случае он используется напрямую. При необходимости этот каталог нужно вручную добавить в путь поиска.
echo 'export PATH="$HOME/.deno/bin:$PATH"' >> ~/.bashrc
При установке необходимо указать разрешения, с которыми будет запускаться скрипт.
deno install -g -N -R jsr:@std/http/file-server -- -p 8080
Приведённая выше команда создаёт исполняемый файл file_server, который запускается с разрешениями на доступ к сети и чтение и привязывается к порту 8080.
Для соблюдения рекомендаций используйте идиому import.meta.main, чтобы указать точку входа в исполняемом скрипте.
Пример:
// https://example.com/awesome/cli.ts
async function myAwesomeCli(): Promise<void> {
// -- snip --
}
if (import.meta.main) {
myAwesomeCli();
}
Создавая исполняемый скрипт, обязательно сообщите об этом пользователям: добавьте в репозиторий пример команды для установки.
# Install using deno install
deno install -n awesome_cli https://example.com/awesome/cli.ts
deno install --global --compile [PACKAGE_OR_URL]
Используйте эту команду, чтобы скомпилировать пакет или скрипт в автономный самодостаточный бинарный файл. Полученный исполняемый файл можно распространять и запускать без необходимости устанавливать Deno в целевой системе.
deno install --global --compile -A npm:@anthropic-ai/claude-code
Эта команда объединяет поведение deno compile с глобальной установкой — создаёт нативный бинарный файл в корневом каталоге установки (как --global, но без --compile).
deno install --prod
Используйте эту команду, чтобы установить только производственные зависимости, пропуская devDependencies из package.json.
deno install --prod
Это полезно при развёртывании приложения, которому не нужны зависимости для разработки, например тестовые фреймворки или инструменты сборки.
Флаг --prod несовместим с --global и --dev.
В средах CI предпочтительнее использовать deno ci --prod: эта команда также обеспечивает неизменность файла блокировки и удаляет все ранее существовавшие node_modules перед установкой.
--skip-types
В сочетании с --prod флаг --skip-types также пропускает пакеты @types/* как среди зависимостей package.json, так и среди импортов deno.json:
deno install --prod --skip-types
Флаг --skip-types распознаёт пакеты типов, проверяя, начинается ли имя пакета с @types/. Эта эвристика может не охватывать все пакеты, содержащие только типы.
--prod с --entrypoint
При сочетании --prod с --entrypoint граф модулей строится только по коду, без зависимостей, содержащих только типы:
deno install --prod --entrypoint main.ts
Это обеспечивает наиболее точную установку для производственной среды: будут установлены только зависимости, действительно импортируемые во время выполнения указанной точкой входа и её транзитивными импортами.
Нативные дополнения Node.js
Многие популярные npm-пакеты, например npm:sqlite3 или npm:duckdb, используют «скрипты жизненного цикла», например скрипты preinstall или postinstall. Чаще всего выполнение этих скриптов необходимо для корректной работы пакета.
В отличие от npm, Deno по умолчанию не запускает эти скрипты, поскольку они могут представлять угрозу безопасности.
Эти скрипты всё же можно запустить, передав флаг --allow-scripts=<packages> при выполнении deno install:
deno install --allow-scripts=npm:sqlite3
Установить все зависимости и разрешить пакету npm:sqlite3 выполнять скрипты жизненного цикла.
Флаг --quiet
Флаг --quiet подавляет диагностические сообщения при установке зависимостей. При использовании вместе с deno install он скрывает индикаторы выполнения, сведения о загрузках и сообщения об успешном завершении.
deno install --quiet jsr:@std/http/file-server
Это полезно в сценариях автоматизации или когда нужно, чтобы вывод в конвейерах CI был более лаконичным.
Удаление
Удалить зависимости или бинарный скрипт можно командой deno uninstall:
deno uninstall express
Removed express
deno uninstall -g file-server
deleted /Users/deno/.deno/bin/file-server
✅ Successfully uninstalled file-server
Дополнительные сведения см. на странице deno uninstall.
deno install [OPTIONS] [cmd]... [-- [SCRIPT_ARG]...]Устанавливает зависимости в локальный проект или глобально в каталог bin.
Локальная установка
Добавляет зависимости в конфигурацию локального проекта (deno.json / package.json) и устанавливает их в кэш пакетов. Если зависимость не указана, устанавливает все зависимости, перечисленные в файле конфигурации. Если передан флаг --entrypoint, устанавливает зависимости указанных точек входа.
deno install
deno install express
deno install jsr:@std/bytes
deno install --entrypoint entry1.ts entry2.ts
Глобальная установка
Если установлен флаг --global, устанавливает скрипт как исполняемый файл в каталог bin корневого каталога установки.
deno install --global --allow-net --allow-read jsr:@std/http/file-server
deno install -g https://examples.deno.land/color-logging.ts
Чтобы изменить имя исполняемого файла, используйте -n/--name:
deno install -g --allow-net --allow-read -n serve jsr:@std/http/file-server
По умолчанию имя исполняемого файла определяется автоматически:
- Попытка взять основу имени файла из пути URL. В приведенном выше примере получится
file_server. - Если основа имени файла является чем-то общим, например
main,mod,indexилиcli, а у пути нет родительского каталога, используется имя файла родительского пути. В противном случае используется общее имя. - Если полученное имя имеет суффикс
@..., он удаляется.
Чтобы изменить корневой каталог установки, используйте --root:
deno install -g --allow-net --allow-read --root /usr/local jsr:@std/http/file-server
Корневой каталог установки определяется в следующем порядке приоритета:
-
опция
--root -
переменная окружения
DENO_INSTALL_ROOT $HOME/.deno
При необходимости эти пути нужно добавить вручную.
Параметры проверки типов
--check<CHECK_TYPE>необязательно
Задает поведение проверки типов. Эта подкоманда по умолчанию проверяет типы локальных модулей, поэтому передача --check избыточна; передайте --check=all, чтобы также проверять типы удаленных модулей. Также можно использовать подкоманду 'deno check'.
--no-check<NO_CHECK_TYPE>необязательно
Пропустить проверку типов. Если указано значение "remote", диагностические ошибки удаленных модулей будут игнорироваться.
Параметры управления зависимостями
--cached-onlyТребовать, чтобы удаленные зависимости уже находились в кэше.
--frozen<BOOLEAN>необязательно
Завершить работу с ошибкой, если файл блокировки устарел.
--import-map<FILE>
Загрузить файл карты импортов из локального файла или удаленного URL.
--lock<FILE>необязательно
Проверить указанный файл блокировки. (Если значение не задано, по умолчанию используется "./deno.lock".)
--no-lockОтключить автоматический поиск файла блокировки.
--no-npmНе разрешать npm-модули.
--no-remoteНе разрешать удаленные модули.
--node-modules-dir<MODE>необязательно
Выбирает режим каталога node_modules для npm-пакетов (не путь). Возможные значения: auto (создать локальный каталог node_modules и установить в него npm-пакеты), manual (использовать существующий локальный каталог node_modules, не изменяя его), none (не использовать локальный каталог node_modules; разрешать npm-пакеты из глобального кэша). Если флаг передан без значения, по умолчанию используется auto.
--node-modules-linker<MODE>
Задает режим связывания npm-пакетов (isolated или hoisted).
--reload, -r<CACHE_BLOCKLIST>необязательно
Перезагрузить кэш исходного кода (повторно скомпилировать TypeScript). Если значение не указано, перезагружается всё. Передайте список спецификаторов, разделенных запятыми, чтобы перезагрузить только указанные модули; npm: перезагружает все npm-модули; npm:chalk перезагружает один npm-модуль; jsr:@std/http/file-server,jsr:@std/assert/assert-equals перезагружает указанные модули.
--vendor<vendor>необязательно
Включает или отключает использование локального каталога vendor для удаленных модулей и каталога node_modules для npm-пакетов.
Параметры
--allow-scripts<PACKAGE>необязательно
Разрешить выполнение скриптов жизненного цикла npm для указанных пакетов. Примечание: скрипты выполняются только при использовании каталога node_modules (--node-modules-dir).
--arch<arch>
Целевая архитектура для установки npm-пакетов (например, x64, arm64).
--cert<FILE>
Загрузить центр сертификации из файла в кодировке PEM.
--compileУстановить скрипт как скомпилированный исполняемый файл.
--conditions<conditions>
Используйте этот аргумент, чтобы указать пользовательские условия для экспорта npm-пакетов. Также можно использовать переменную окружения DENO_CONDITIONS. .
--config, -c<FILE>
Настроить различные параметры Deno, включая TypeScript, проверку кода и форматирование кода. Обычно файл конфигурации называется deno.json или deno.jsonc и обнаруживается автоматически; в этом случае этот флаг не требуется.
--dev, -DДобавить пакет как зависимость для разработки (в devDependencies). Примечание: это применимо только при добавлении в файл package.json.
--entrypoint, -eУстановить зависимости указанных точек входа.
--env-file<FILE>необязательно
Загрузить переменные окружения из локального файла. Для каждого ключа используется только первая переменная окружения. Существующие переменные окружения процесса не перезаписываются, поэтому, если в окружении уже есть переменные с такими именами, их значения сохраняются. Если в файле .env несколько объявлений одной переменной окружения, применяется первое найденное. Порядок определяется последовательностью файлов, переданных в качестве аргументов.
--force, -fПринудительно перезаписать существующую установку.
--global, -gУстановить пакет или скрипт как исполняемый файл, доступный глобально.
--jsrСчитать, что имена пакетов без префикса обозначают пакеты jsr.
--location<HREF>
Значение globalThis.location, используемое некоторыми веб-API.
--lockfile-onlyВыполнить установку, обновив только файл блокировки.
--minimum-dependency-age<minimum-dependency-age>
(Нестабильно) Возраст в минутах, длительность в формате ISO-8601 или абсолютная временная метка RFC3339 (например, '120' — два часа, 'P2D' — два дня, '2025-09-16' — дата отсечения, '2025-09-16T12:00:00+00:00' — время отсечения, '0' — отключить).
--name, -n<name>
Имя исполняемого файла.
--no-configОтключить автоматическую загрузку файла конфигурации.
--no-saveУстановить пакет(ы), не добавляя их в файл конфигурации.
--npmсчитать, что имена пакетов без префикса обозначают пакеты npm (по умолчанию).
--os<os>
Целевая операционная система для установки npm-пакетов (например, linux, darwin, win32).
--package-jsonПринудительно использовать package.json для управления зависимостями вместо deno.json.
--preload<FILE>
Список файлов, которые будут выполнены перед главным модулем.
--prodУстанавливать только зависимости для production (без devDependencies).
--require<FILE>
Список модулей CommonJS, которые будут выполнены перед главным модулем.
--root<root>
Корневой каталог установки.
--save-exactСохранить точную версию без символа каретки (^).
--save-optional, -OДобавить пакет как необязательную зависимость (в optionalDependencies). Примечание: это применимо только при добавлении в файл package.json.
--seed<NUMBER>
Задать начальное значение генератора случайных чисел.
--skip-typesИсключить пакеты @types/* из установки. Используйте с осторожностью: применяется эвристика на основе имени, которая может пропустить пакеты с исполняемым кодом.
--unscopedИспользовать имя пакета без области видимости в качестве псевдонима (например, jsr:@david/jsonc-morph добавляется как jsonc-morph). На пакеты с явно заданным псевдонимом это не влияет.
--v8-flags<V8_FLAGS>необязательно
Чтобы просмотреть список всех доступных флагов, используйте --v8-flags=--help. Флаги также можно задавать с помощью переменной окружения DENO_V8_FLAGS. Флаги, заданные этим параметром, добавляются после переменной окружения DENO_V8_FLAGS.
Параметры отладки
--inspect<HOST_PORT>необязательно
Включить инспектор на host:port [по умолчанию: 127.0.0.1:9229]. Host и port указывать необязательно. При использовании порта 0 будет назначен случайный свободный порт.
--inspect-brk<HOST_PORT>необязательно
Включить инспектор на host:port, дождаться подключения отладчика и остановиться в начале пользовательского скрипта.
--inspect-wait<HOST_PORT>необязательно
Включить инспектор на host:port и дождаться подключения отладчика перед выполнением пользовательского кода.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/install