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.
--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 и дождаться подключения отладчика перед выполнением пользовательского кода.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/eval