Spec-Zone.ru › Deno 2

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
Deno 2.8

По умолчанию имена пакетов без префикса считаются 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: и нужно кешировать все зависимости до развёртывания проекта.

main.js
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 и дождаться подключения отладчика перед выполнением пользовательского кода.

Последнее обновление: 2 июля 2026 г.

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/install

Spec-Zone.ru

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