Spec-Zone.ru › Deno 2

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

Spec-Zone.ru

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