Spec-Zone.ru › Deno 2

Запуск кода

Deno запускает JavaScript и TypeScript напрямую (без этапа сборки и конфигурации) в песочнице безопасности, которая предоставляет доступ только по вашему запросу. На этой странице рассказывается, как именно запускается ваш код: о разрешениях, способах запуска, режиме наблюдения и задачах.

Запуск файла

Укажите Deno файл. TypeScript запускается без изменений:

›_
deno run main.ts

deno run задаётся явно, но для файла или задачи можно опустить run — Deno разберётся сам:

›_
deno main.ts          # same as `deno run main.ts`

Разрешения: безопасность по умолчанию

Это отличие от Node. Код работает в песочнице, не имея доступа к сети, файловой системе, окружению или дочерним процессам, пока вы не предоставите его. Если скрипт попытается прочитать файл без разрешения, он остановится и запросит его либо завершится с ошибкой, если запросы отключены.

Предоставляйте доступ с помощью флагов --allow-* (у каждого есть краткая форма) и ограничивайте его строго необходимым:

›_
deno run --allow-net main.ts                     # network    (-N)
deno run --allow-read=./data main.ts             # filesystem (-R), scoped
deno run -N=api.example.com -E main.ts           # combined, short forms

Используйте --deny-*, чтобы задать исключения, или -A / --allow-all, чтобы полностью отключить песочницу. Это удобно в доверенной среде, но лишает вас гарантий безопасности. Список всех флагов см. в разделе «Разрешения», а описание принципов их работы — в разделе «Безопасность».

Передача аргументов скрипту

Аргументы для вашего скрипта указываются после его имени; Deno передаёт их в Deno.args:

main.ts
console.log(Deno.args);
$ deno run main.ts arg1 arg2 arg3
[ "arg1", "arg2", "arg3" ]

Если аргументов больше, чем просто список, разберите их с помощью parseArgs из jsr:@std/cli или parseArgs из node:util.

Порядок аргументов и флагов

Внимание

Всё, что указано после имени скрипта, является аргументом скрипта, а не флагом среды выполнения Deno. Это распространённая причина путаницы, поэтому размещайте флаги среды выполнения перед именем скрипта.

Это может привести к следующей ошибке:

# Good. We grant net permission to net_client.ts.
deno run --allow-net net_client.ts

# Bad! --allow-net was passed to Deno.args, throws a net permission error.
deno run net_client.ts --allow-net

Запуск из URL или stdin

Deno может запускать код напрямую из URL (удобно для разовых инструментов и установщиков) или из stdin:

›_
deno run https://example.com/script.ts
echo 'console.log(1 + 1)' | deno run -

Удалённый код работает в песочнице, как и любой другой: у него нет разрешений, пока вы их не предоставите.

Перезапуск при изменениях в режиме наблюдения

Добавьте --watch, и Deno будет перезапускать программу при каждом изменении файла, от которого она зависит. Без nodemon и дополнительных зависимостей:

›_
deno run --watch main.ts

deno test, deno fmt и другие команды тоже поддерживают --watch. Подробнее о том, за какими файлами ведётся наблюдение, исключении путей и горячей замене модулей см. в разделе «Режим наблюдения и HMR».

Запуск задач проекта

Определяйте повторно запускаемые команды в deno.json и запускайте их с помощью deno task — аналога npm run:

deno.json
{
  "tasks": {
    "dev": "deno run --watch --allow-net main.ts",
    "start": "deno run --allow-net main.ts"
  }
}
›_
deno task dev

Задачи могут запускать другие задачи, задавать переменные окружения и работать на разных платформах.

Быстрый запуск кода

Для экспериментов вычислите выражение напрямую или откройте REPL:

›_
deno eval "console.log(Deno.version)"
deno repl

Что ещё можно сделать

  • Создание HTTP-сервера. Обрабатывайте запросы с помощью соответствующего веб-стандартам API Deno.serve.
  • Веб-разработка. Создавайте приложения с помощью Fresh, Next.js, Astro и веб-стандартных API.
  • API веб-платформы. fetch, Request/Response, потоки, Web Crypto и другие глобальные объекты браузера, реализованные в Deno.
  • Отладка. Подключите Chrome DevTools или отладчик в редакторе.
  • Справочник по deno run. Подробное описание всех флагов.

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

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

Spec-Zone.ru

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