Spec-Zone.ru › Deno 2

deno eval

deno eval выполняет строку кода непосредственно из командной строки, не требуя файла. В отличие от deno run, deno eval по умолчанию запускается со всеми разрешениями.

Основное использование

›_
deno eval "console.log('Hello from Deno')"

TypeScript работает сразу:

›_
deno eval "const greeting: string = 'Hello'; console.log(greeting)"

Автоопределение CommonJS и ESM

Начиная с Deno 2.8, deno eval по умолчанию использует ESM, но переключается на CommonJS, если фрагмент кода похож на скрипт CJS. Фрагмент считается CJS только в том случае, если он не содержит объявлений import / export и использует одну из привязок, специфичных для CommonJS: require(, module.exports, exports., __dirname или __filename. Всё остальное, включая простые выражения, выполняется как ESM, что соответствует давно установленному поведению deno eval по умолчанию.

›_
# Detected as CommonJS — uses require()
deno eval "const path = require('path'); console.log(path.join('a', 'b'))"

# Runs as ESM (the default) — no CJS-specific patterns
deno eval "console.log(1 + 2)"

# Runs as ESM because of the static import
deno eval "import { ok } from 'node:assert'; ok(true); console.log('ok')"

Если эвристика ошибается — например, когда фрагмент упоминает require только внутри строки, — передайте --ext=mjs, чтобы принудительно использовать ESM, или --ext=cjs, чтобы принудительно использовать CommonJS.

Вывод результатов выражений

Используйте --print (или -p), чтобы вычислить выражение и вывести его результат, как в node -p:

›_
deno eval -p "1 + 2"
# 3

deno eval -p "Deno.version"
# { deno: "2.x.x", v8: "...", typescript: "..." }

Чтение из stdin

Объедините команду с перенаправленным вводом для быстрой обработки данных:

›_
echo '{"name":"deno"}' | deno eval -p "
  const text = await new Response(Deno.stdin.readable).text();
  JSON.parse(text).name
"
Использование командной строки:
deno eval [OPTIONS] [CODE_ARG]...

Выполняет JavaScript из командной строки.

deno eval "console.log('hello world')"

Чтобы выполнить код как TypeScript:

deno eval --ext=ts "const v: string = 'hello'; console.log(v)"

Эта команда имеет неявный доступ ко всем разрешениям.

Параметры проверки типов

--check<CHECK_TYPE>необязательно

Включить проверку типов. Эта подкоманда по умолчанию не проверяет типы; передайте --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-пакетов (изолированный или 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).

--cert<FILE>

Загрузить центр сертификации из файла в формате PEM.

--conditions<conditions>

Используйте этот аргумент, чтобы указать пользовательские условия для экспорта npm-пакетов. Также можно использовать переменную окружения DENO_CONDITIONS. .

--config, -c<FILE>

Настроить различные аспекты deno, включая TypeScript, линтинг и форматирование кода. Обычно файл конфигурации называется deno.json или deno.jsonc и обнаруживается автоматически; в таком случае этот флаг не требуется.

--cpu-prof

Запустить профилировщик ЦП V8 при старте и записать профиль на диск при завершении. По умолчанию профили сохраняются в текущий каталог.

--cpu-prof-dir<DIR>

Каталог для сохранения профилей ЦП V8. Неявно включает --cpu-prof.

--cpu-prof-flamegraph

Создать SVG-флеймграф вместе с профилем ЦП.

--cpu-prof-interval<MICROSECONDS>

Интервал выборки для профилирования ЦП в микросекундах (по умолчанию: 1000).

--cpu-prof-md

Создать удобный для чтения отчёт в формате Markdown вместе с профилем ЦП.

--cpu-prof-name<NAME>

Имя файла профиля ЦП (по умолчанию: CPU...cpuprofile).

--env-file<FILE>необязательно

Загрузить переменные окружения из локального файла. Используется только первая переменная окружения с заданным ключом. Существующие переменные окружения процесса не перезаписываются, поэтому значения переменных с уже имеющимися в окружении именами сохраняются. Если в файле .env есть несколько объявлений одной переменной окружения, применяется первое найденное. Это определяется порядком файлов, переданных в качестве аргументов.

--ext<ext>

Задать тип содержимого указанного файла.

--location<HREF>

Значение globalThis.location, используемое некоторыми веб-API.

--minimum-dependency-age<minimum-dependency-age>

(Нестабильный параметр) Возраст в минутах, длительность ISO-8601 или абсолютная временная отметка RFC3339 (например, «120» — два часа, «P2D» — два дня, «2025-09-16» — дата отсечения, «2025-09-16T12:00:00+00:00» — время отсечения, «0» — отключить).

--no-config

Отключить автоматическую загрузку файла конфигурации.

--preload<FILE>

Список файлов, которые будут выполнены перед основным модулем.

--print, -p

Вывести результат в stdout.

--require<FILE>

Список модулей CommonJS, которые будут выполнены перед основным модулем.

--seed<NUMBER>

Задать начальное значение генератора случайных чисел.

--v8-flags<V8_FLAGS>необязательно

Чтобы посмотреть список всех доступных флагов, используйте --v8-flags=--help. Флаги также можно задать с помощью переменной окружения DENO_V8_FLAGS. Флаги, указанные с помощью этого параметра, добавляются после переменной окружения DENO_V8_FLAGS.

Параметры отладки

--inspect<HOST_PORT>необязательно

Активировать инспектор на host:port [по умолчанию: 127.0.0.1:9229]. Хост и порт можно не указывать. Если указать порт 0, будет назначен случайный свободный порт.

--inspect-brk<HOST_PORT>необязательно

Активировать инспектор на host:port, дождаться подключения отладчика и остановиться в начале пользовательского скрипта.

--inspect-wait<HOST_PORT>необязательно

Активировать инспектор на host:port и дождаться подключения отладчика перед выполнением пользовательского кода.

Последнее обновление: 20 мая 2026 г.

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

Spec-Zone.ru

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