Spec-Zone.ru › Deno 2

Командная строка интерфейса

Deno — это командная строка программа. Командная строка интерфейс (CLI) Deno может использоваться для запуска скриптов, управления зависимостями и даже компиляции вашего кода в автономные исполняемые файлы. Возможно, вам знакомы некоторые простые команды, которые вы использовали в примерах. Эта страница предоставит более подробный обзор CLI Deno.

CLI Deno имеет ряд подкоманд (например, run, init и test, и т. д.). Они используются для выполнения различных задач в среде выполнения Deno. Каждая подкоманда имеет свой набор флагов и параметров (например, --version), которые можно использовать для настройки ее поведения.

Вы можете просмотреть все доступные команды и флаги, выполнив подкоманду deno help в вашей консоли или используя флаги -h или --help.

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

Пример подкоманды — deno run

Вы можете запустить локальный TypeScript или JavaScript файл, указав его путь относительно текущей рабочей директории:

deno run main.ts

Deno поддерживает запуск скриптов напрямую из URL-адресов. Это особенно полезно для быстрого тестирования или запуска кода без предварительной загрузки:

deno run https://docs.deno.com/examples/hello-world.ts

Вы также можете запустить скрипт, передав его через стандартный ввод. Это полезно для интеграции с другими инструментами командной строки или динамического генерирования скриптов:

cat main.ts | deno run -

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

Аргументы скрипта — это дополнительные параметры, которые вы можете передать своему скрипту при его запуске из командной строки. Эти аргументы могут использоваться для настройки поведения вашей программы на основе входных данных, предоставленных во время выполнения. Аргументы должны передаваться после имени скрипта.

Чтобы проверить это, мы можем создать скрипт, который будет регистрировать передаваемые ему аргументы:

main.ts
console.log(Deno.args);

Когда мы запустим этот скрипт и передадим ему некоторые аргументы, он будет выводить их в консоль:

$ deno run main.ts arg1 arg2 arg3
[ "arg1", "arg2", "arg3" ]

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

Обратите внимание, что все, что передается после имени скрипта, будет передано как аргумент скрипта, а не как флаг среды выполнения 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

Общие флаги

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

Режим отслеживания

Вы можете указать флаг --watch для deno run, deno test, deno compile, и deno fmt для включения встроенного наблюдателя файлов. Наблюдатель позволяет автоматически перезагружать приложение при обнаружении изменений в исходных файлах. Это особенно полезно во время разработки, так как позволяет увидеть эффекты ваших изменений сразу же, без ручного перезапуска приложения.

Наблюдаемые файлы зависят от используемой подкоманды:

  • для deno run, deno test, и deno compile точка входа и все локальные файлы, которые точка входа статически импортирует, будут отслеживаться.
  • для deno fmt все локальные файлы и директории, указанные в качестве аргументов командной строки (или рабочая директория, если не указаны конкретные файлы/директории), отслеживаются.
deno run --watch main.ts
deno test --watch
deno fmt --watch

Вы можете исключить пути или шаблоны из отслеживания, указав флаг --watch-exclude. Синтаксис — --watch-exclude=path1,path2. Например:

deno run --watch --watch-exclude=file1.ts,file2.ts main.ts

Это исключит file1.ts и file2.ts из отслеживания.

Чтобы исключить шаблон, помните, что необходимо заключить его в кавычки, чтобы предотвратить расширение оболочки glob:

deno run --watch --watch-exclude='*.js' main.ts

Режим горячей замены модулей

Вы можете использовать флаг --watch-hmr с deno run для включения режима горячей замены модулей. Вместо перезапуска программы среда выполнения попытается обновить программу на месте. Если обновление на месте завершится неудачей, программа все равно будет перезапущена.

deno run --watch-hmr main.ts

При срабатывании горячей замены модуля среда выполнения отправит событие CustomEvent типа hmr, которое будет содержать свойство path в объекте detail. Вы можете прослушивать это событие и выполнять дополнительные логические действия, необходимые при обновлении модуля (например, уведомлять браузер по соединению WebSocket).

addEventListener("hmr", (e) => {
  console.log("HMR triggered", e.detail.path);
});

Флаги целостности (файлы блокировки)

Влияют на команды, которые могут загружать ресурсы в кэш: deno install, deno run, deno test, deno doc, и deno compile.

--lock <FILE>    Check the specified lock file
--frozen[=<BOOLEAN>] Error out if lockfile is out of date

Узнайте больше об этом здесь.

Флаги кэша и компиляции

Влияют на команды, которые могут заполнять кэш: deno install, deno run, deno test, deno doc, и deno compile. А также флаги, влияющие на разрешение модулей, конфигурацию компиляции и т. д.

--config <FILE>               Load configuration file
--import-map <FILE>           Load import map file
--no-remote                   Do not resolve remote modules
--reload=<CACHE_BLOCKLIST>    Reload source code cache (recompile TypeScript)
--unstable                    Enable unstable APIs

Флаги среды выполнения

Влияют на команды, которые выполняют пользовательский код: deno run и deno test. Они включают все вышеперечисленные, а также следующие.

Флаги проверки типов

Вы можете проверить свой код на типы (без его выполнения) с помощью команды:

> deno check main.ts

Вы также можете проверить свой код на типы перед выполнением, используя аргумент --check для deno run:

> deno run --check main.ts

Этот флаг влияет на deno run, deno eval, deno repl . В следующей таблице описано поведение проверки типов различных подкоманд. Здесь "Локальный" означает, что только ошибки из локального кода будут вызывать ошибки типов, модули, импортированные из URL-адресов https (удаленные), могут иметь ошибки типов, которые не будут сообщаться. (Чтобы включить проверку типов для всех модулей, используйте --check=all.)

Подкоманда Режим проверки типов
deno bench 📁 Локальный
deno check 📁 Локальный
deno compile 📁 Локальный
deno eval ❌ Нет
deno repl ❌ Нет
deno run ❌ Нет
deno test 📁 Локальный

Флаги разрешений

Эти флаги перечислены здесь.

Другие флаги среды выполнения

Дополнительные флаги, которые влияют на среду выполнения.

--cached-only                Require that remote dependencies are already cached
--inspect=<HOST:PORT>        activate inspector on host:port ...
--inspect-brk=<HOST:PORT>    activate inspector on host:port and break at ...
--inspect-wait=<HOST:PORT>   activate inspector on host:port and wait for ...
--location <HREF>            Value of 'globalThis.location' used by some web APIs
--prompt                     Fallback to prompt if required permission wasn't passed
--seed <NUMBER>              Seed Math.random()
--v8-flags=<v8-flags>        Set V8 command line options. For help: ...

© 2018–2024 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/getting_started/command_line_interface

Spec-Zone.ru

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