deno repl, интерактивный скриптовый командный интерпретатор
Использование в командной строке
deno repl [OPTIONS] [-- [ARGS]...]Запускает цикл «чтение-вычисление-печать», который позволяет интерактивно создавать состояние программы в глобальном контексте. Это особенно полезно для быстрого прототипирования и проверки фрагментов кода.
Поддерживается TypeScript, однако он не проверяется на типы, а только транспилируется.
Параметры
--cert
Загрузка файла с корневым сертификатом из файла, закодированного в PEM.
--config
Короткая форма: -c
Настройка различных аспектов deno, включая TypeScript, проверки кода на соответствие стандартам и форматирования кода. Обычно файл конфигурации называется deno.json или deno.jsonc и автоматически обнаруживается; в этом случае этот флаг не нужен.
--env-file
Загрузка переменных среды из локального файла. Используется только первая переменная среды с заданным ключом. Существующие переменные среды процесса не перезаписываются, поэтому, если переменные с одинаковыми именами уже существуют в среде, их значения будут сохранены. В случае, когда в вашем файле .env существуют несколько деклараций для одной и той же переменной среды, используется первая встреченная. Это определяется порядком файлов, которые вы передаёте в качестве аргументов.
--eval
Вычисляет предоставленный код при запуске REPL.
--eval-file
Вычисляет предоставленные файлы как скрипты при запуске REPL. Принимает пути к файлам и URL-адреса.
--location
Значение globalThis.location, используемое некоторыми веб-API.
--no-config
Отключение автоматической загрузки файла конфигурации.
--seed
Установка начального значения генератора случайных чисел.
--v8-flags
Для просмотра списка всех доступных флагов используйте --v8-flags=--help Флаги также можно задать через переменную среды DENO_V8_FLAGS. Любые флаги, заданные с помощью этого флага, добавляются после переменной среды DENO_V8_FLAGS.
Параметры управления зависимостями
--cached-only
Требуется, чтобы удалённые зависимости уже были кэшированы.
--frozen
Выводится ошибка, если файл блокировки устарел.
--import-map
Загрузка файла карты импорта из локального файла или удалённого URL.
--lock
Проверка указанного файла блокировки. (Если значение не указано, используется по умолчанию "./deno.lock").
--no-lock
Отключение автоматического обнаружения файла блокировки.
--no-npm
Отказ от разрешения модулей npm.
--no-remote
Отказ от разрешения удалённых модулей.
--node-modules-dir
Устанавливает режим управления папкой node_modules для пакетов npm.
--reload
Короткая форма: -r
Перезагрузка кэша исходного кода (перекомпиляция TypeScript) без значения Перезагрузка всего jsr:@std/http/file-server,jsr:@std/assert/assert-equals Перезагружает определённые модули npm: Перезагрузка всех модулей npm npm:chalk Перезагрузка определённого модуля npm.
--vendor
Включает/выключает использование локальной папки vendor для удалённых модулей и папки node_modules для пакетов npm.
Параметры отладки
--inspect
Активация инспектора на хосте:порту [по умолчанию: 127.0.0.1:9229]
--inspect-brk
Активация инспектора на хосте:порту, ожидание подключения отладчика и остановка в начале пользовательского скрипта.
--inspect-wait
Активация инспектора на хосте:порту и ожидание подключения отладчика перед запуском пользовательского кода.
Специальные переменные
REPL предоставляет несколько специальных переменных, которые всегда доступны:
| Идентификатор | Описание |
|---|---|
| _ | Возвращает последнюю вычисленную выражение |
| _error | Возвращает последнюю возникшую ошибку |
Deno 1.14.3
exit using ctrl+d or close()
> "hello world!"
"hello world!"
> _
"hello world!"
> const foo = "bar";
undefined
> _
undefined
Специальные функции
REPL предоставляет несколько функций в глобальной области видимости:
| Функция | Описание |
|---|---|
| clear() | Очистка всего экрана терминала |
| close() | Закрытие текущей сессии REPL |
--eval флаг
--eval флаг позволяет выполнить некоторый код в среде выполнения до перехода в REPL. Это полезно для импорта некоторого кода, который вы часто используете в REPL, или для изменения среды выполнения каким-либо образом:
$ deno repl --allow-net --eval 'import { assert } from "jsr:@std/assert@1"'
Deno 1.45.3
exit using ctrl+d, ctrl+c, or close()
> assert(true)
undefined
> assert(false)
Uncaught AssertionError
at assert (https://jsr.io/@std/assert/1.0.0/assert.ts:21:11)
at <anonymous>:1:22
--eval-file флаг
--eval-file флаг позволяет запустить код из указанных файлов перед переходом в REPL. Как и --eval флаг, это полезно для импорта кода, который вы часто используете в REPL, или для изменения среды выполнения каким-либо образом.
Файлы можно указывать как пути или URL-адреса. Файлы URL-адресов кэшируются и могут быть перезагружены с помощью --reload флага.
Если также указан --eval, то --eval-file файлы запускаются перед --eval кодом.
$ deno repl --eval-file=https://docs.deno.com/examples/welcome.ts,https://docs.deno.com/examples/local.ts
Download https://docs.deno.com/examples/welcome.ts
Welcome to Deno!
Download https://docs.deno.com/examples/local.ts
Deno 1.45.3
exit using ctrl+d or close()
> local // this variable is defined locally in local.ts, but not exported
"This is a local variable inside of local.ts"
Разрешение относительных путей импорта
Если --eval-file указывает файл кода, содержащий относительные импорты, среда выполнения попытается разрешить импорты относительно текущей рабочей директории. Она не будет пытаться разрешать их относительно местоположения файла кода. Это может привести к ошибкам «Модуль не найден» при использовании --eval-file с файлами модулей:
$ deno repl --eval-file=https://jsr.io/@std/encoding/1.0.0/ascii85.ts
error in --eval-file file https://jsr.io/@std/encoding/1.0.0/ascii85.ts. Uncaught TypeError: Module not found "file:///home/_validate_binary_like.ts".
at async <anonymous>:2:13
Deno 1.45.3
exit using ctrl+d or close()
>
Автодополнение по табуляции
Автодополнение по табуляции — важная функция для быстрого перемещения по REPL. После нажатия tab клавиши Deno отобразит список всех возможных дополнений.
$ deno repl
Deno 1.45.3
exit using ctrl+d or close()
> Deno.read
readTextFile readFile readDirSync readLinkSync readAll read
readTextFileSync readFileSync readDir readLink readAllSync readSync
Клавиши быстрого доступа
| Нажатие клавиш | Действие |
|---|---|
| Ctrl-A, Home | Перемещение курсора в начало строки |
| Ctrl-B, Влево | Перемещение курсора на один символ влево |
| Ctrl-C | Прерывание и отмена текущего редактирования |
| Ctrl-D | Если строка пустая, сигнализировать об окончании строки |
| Ctrl-D, Удалить | Если строка не пустая, удалить символ под курсором |
| Ctrl-E, End | Перемещение курсора в конец строки |
| Ctrl-F, Вправо | Перемещение курсора на один символ вправо |
| Ctrl-H, Backspace | Удаление символа перед курсором |
| Ctrl-I, Tab | Следующее завершение |
| Ctrl-J, Ctrl-M, Enter | Завершение ввода строки |
| Ctrl-K | Удаление от курсора до конца строки |
| Ctrl-L | Очистка экрана |
| Ctrl-N, Вниз | Следующая совпадающая строка из истории |
| Ctrl-P, Вверх | Предыдущая совпадающая строка из истории |
| Ctrl-R | Обратный поиск в истории (Ctrl-S вперёд, Ctrl-G отмена) |
| Ctrl-T | Перестановка предыдущего символа с текущим символом |
| Ctrl-U | Удаление от начала строки до курсора |
| Ctrl-V | Вставка любого специального символа без выполнения его связанного действия |
| Ctrl-W | Удаление слова, ведущего до курсора (используя пробелы в качестве разделителей слов) |
| Ctrl-X Ctrl-U | Отмена |
| Ctrl-Y | Вставка из буфера обмена |
| Ctrl-Y | Вставка из буфера обмена (Meta-Y для вставки следующего буфера обмена вместо) |
| Ctrl-Z | Приостановка (только Unix) |
| Ctrl-_ | Отмена |
| Meta-0, 1, ..., - | Указание цифры для аргумента. – начинает отрицательный аргумент. |
| Meta < | Переход к первой записи в истории |
| Meta > | Переход к последней записи в истории |
| Meta-B, Alt-Влево | Перемещение курсора к предыдущему слову |
| Meta-Backspace | Уничтожение от начала текущего слова или, если между словами, до начала предыдущего слова |
| Meta-C | Веб-капитализация текущего слова |
| Meta-D | Удаление вперёд на одно слово |
| Meta-F, Alt-Вправо | Перемещение курсора к следующему слову |
| Meta-L | Нижний регистр следующего слова |
| Meta-T | Перестановка слов |
| Meta-U | Верхний регистр следующего слова |
| Meta-Y | См. Ctrl-Y |
| Ctrl-S | Вставка новой строки |
DENO_REPL_HISTORY
Вы можете использовать DENO_REPL_HISTORY переменную среды, чтобы управлять тем, где Deno хранит файл истории REPL. Вы можете установить её в пустое значение, Deno не будет хранить файл истории.
© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/repl