Как Наггетс открыли первый выпуск «Технических тем»Поговорим о Дено.", в последний день дедлайна (04.08) вот-вот должна выйти новая статья Deno. Я читал очерки Deno других партнеров, в том числе Deno TCP Echo Server, практика TDD на Deno, программа Deno Как вызвать Rust, решение для разработки командной строки Deno, простой маршрутизатор Deno, простое приложение Deno, Deno от входа до запуска, Deno с нуля до разработки архитектуры и т. д. Каждая статья очень яркая и захватывающая. Тогда... Если вы видели это статью за последние два дня и нашел ее полезной,Хуан (ган) добро пожаловать (джин) в мою статью о Наггетс, могу ли я получить хороший подарок от Наггетс~ Если я увижу это когда-нибудь в будущем,кликните сюда.
- Статья о самородках, как портал:Талант /user/370281…
Тема этой статьи — «Чтение архитектуры Deno», а направление входа — «чтение инструкций командной строки». Что касается темы «чтения архитектуры Deno», я чувствую, что могу выкопать серию статей, таких как изучение исходного кода с точки зрения CLI, стандартной библиотеки, ядра и библиотеки инструментов.
Как видно из инструкций командной строки, в Deno официально есть много встроенных инструментов для тестирования, упаковки, форматирования, линтера, установки зависимых библиотек и т. д., тогда как в Node нам может понадобиться найти и выбрать большое количество третьих Партийные библиотеки для заполнения каждой функции. Давайте посмотрим, какие инструменты доступны!Время написания этой статьи 14ч+, структура каталогов ускорилась после большого рефакторинга:
- Прочитайте основы командной строки: из deno --help для чтения общих директив, встроенных наборов инструментов и переменных окружения;
- Прочтите общие инструкции Deno: Прочитайте общие инструкции одну за другой;
- Ознакомьтесь со встроенным набором инструментов Deno: прочитайте ключевые функции 14 встроенных инструментов Deno один за другим;
- Чтение переменных окружения Deno: Отдельные переменные окружения для анализа;
Серия «Deno Studying Technique» была недавно запущена в день выпуска Deno v1 и нерегулярно обновляется на Github (GitHub.com/Добро пожаловать и японский/…✨), официальный сайт (deno-tutorial.js.org). Давайте шаг за шагом изучим Deno, сначала легко, а затем сложно создадим Node, и разработаем собственное веб-приложение Deno на будущее. Добро пожаловать на подписку, добро пожаловать в общение.
Прочитайте основы командной строки
deno --help, help
Самый быстрый и практичный способ понять команду — это непосредственно прочитать ее справочную документацию.Каждая строка справочной информации представляет собой краткое и ключевое введение, которое нетрудно понять и перевести. Введите в терминал следующую команду (help или --help используется для вывода глобальной справочной информации или справочной информации для данной подкоманды):
$ deno --help
Чтобы получить основную справочную информацию для Deno:
- deno 1.2.2 (выпущен 01.08.2020)
- Безопасная среда выполнения JavaScript и TypeScript
- Документация:deno.land/manual
- Модуль:deno.land/std/ deno.land/x/
- Ошибки:GitHub.com/Ноланд/…
- Как использовать: deno [ОПЦИИ] [подкоманда]
# 以 REPL 模式启动:
$ deno
# 执行一个脚本:
$ deno run https://deno.land/std/examples/welcome.ts
# 在 Shell 中执行一段代码:
$ deno eval "console.log(30933 + 404)"
Резюме 26 общих инструкций
Комбинируя параметры, которые появляются в deno --help, и параметры, которые обычно также находятся в справочной информации 14 встроенных наборов инструментов, общие команды организованы здесь для общего обзора (если команда используется дважды или более того, он считается общей инструкцией, охватывающей почти все):
- P.S: Когда я изо всех сил пытался назвать это «параметром», «параметром» или «командой», я почти выбрал «параметр» и, наконец, выбрал «команду».
Примечание: следующая таблица была составлена в течение нескольких часов, и если она может вам помочь, не забудьте поставить лайк. Выкопайте яму: позже вы сможете нарисовать интеллект-карту. В то же время, если есть какая-либо ошибка, пожалуйста, оставьте сообщение о проблемах с репозиторием Github в области комментариев.
серийный номер | опции | Какие инструменты доступны? | использовать |
---|---|---|---|
01 | -h, --help | все | распечатать справочную информацию |
02 | -L, --log-level | все | установить уровень журнала [возможные значения: отладка, информация] |
03 | -q, --quiet | все | Подавить диагностический вывод; по умолчанию подкоманда выводит удобочитаемые диагностические сообщения в stderr; если этот флаг установлен, эти сообщения ограничиваются ошибками |
04 | -A, --allow-all | run, install, test | Разрешить все разрешения, это отключит все ограничения безопасности |
05 | --allow-env | run, install, test | Разрешить доступ к среде, например чтение и установку переменных среды. |
06 | --allow-hrtime | run, install, test | Обеспечивает высокоточное измерение времени, которое можно использовать в атаках по времени и распознавании подписи. |
07 | --allow-net= | run, install, test | Разрешить доступ к сети. Вы можете указать серию доменных имен, разделенных запятыми, чтобы предоставить белый список доменных имен. |
08 | --allow-plugin | run, install, test | Разрешить загрузку плагинов. Обратите внимание: в настоящее время это нестабильная функция. |
09 | --allow-read= | run, install, test | Позволяет читать файловую систему. Белый список файловой системы можно указать, указав список каталогов или файлов, разделенных запятыми. |
10 | --allow-run | run, install, test | Разрешить запуск дочерних процессов. Обратите внимание, что подпроцессы не запускаются в песочнице и поэтому не имеют таких же ограничений безопасности, как процессы deno, используйте их с осторожностью. |
11 | --allow-write= | run, install, test | Разрешить запись в файловую систему. Вы можете указать список каталогов или файлов, разделенных запятыми, чтобы предоставить белый список файловой системы. |
12 | --cert | run, install, bundle, chche, eval, info, test, upgrade, repl | Загрузите центр сертификации из файла с кодировкой PEM |
13 | -c, --config | run, install, budle, cache, test | Прочтите файл конфигурации tsconfig.json |
14 | --unstable | run, install, bundle, cache, doc, eval, fmt, info, lint, test, types, repl | Включить поддержку нестабильных API |
15 | --inspect=HOST:PORT | run, eval, test, repl | активировать прослушиватель host:port (по умолчанию: 127.0.0.1:9229) |
16 | --inspect-brk=HOST:PORT | run, eval, test, repl | Активировать прослушиватель на host:port и прерывать запуск пользовательского скрипта |
17 | --v8-flags= | run, eval, test, repl | Установите параметры командной строки V8. Справка: --v8-flags=--помощь |
18 | --cached-only | run, test | требовать кэширования удаленных зависимостей |
19 | -r, --reload=<CACHE_BLOCKLIST> | run, cache, doc, test | Перезагрузите кэш исходного кода (перекомпилируйте TypeScript). Перезагрузить все/только стандартные модули/специфические модули |
20 | --lock | run, bundle, cache, test | Проверить указанный файл блокировки |
21 | --lock-write | run, bundle, cache, test | записать файл блокировки, используемый с --lock |
22 | --no-check | run, cache, info, test | Отключите проверку типов TypeScript, что значительно сократит время запуска программы. |
23 | --no-remote | run, cache, test | Не разрешать удаленные модули |
24 | --seed | run, test | Семя Math.random() |
25 | --importmap | run, install, bundle, test | нестабильный: прочитать файл карты импорта |
26 | --json | doc, info | Вывод документов в формате JSON |
Конкретные общие инструкции будут более подробно поняты в главе «Чтение общих инструкций Deno».
Всего 14 встроенных наборов инструментов.
14 встроенных инструментов изначально представлены в справочной информации (чтобы подчеркнуть независимость каждого инструмента, эти инструменты временно переводятся как «хх инструментов»):
серийный номер | имя | Заказ | Функция |
---|---|---|---|
01 | бегун | deno run | Запустите программу с указанным именем файла или URL. Чтение со стандартного ввода с использованием "-" в качестве имени файла |
02 | Установщик скриптов | deno install | Установите скрипт как исполняемый файл |
03 | упаковщик | deno bundle | Упакуйте модули и зависимости в один файл |
04 | регистр | deno cache | зависимость кэша |
05 | Генератор документации | deno doc | Показать документацию для модуля |
06 | Актуатор | deno eval | выполнить скрипт |
07 | форматер | deno fmt | отформатировать исходный файл |
08 | средство проверки зависимостей | deno info | Отображать информацию о кешах или информацию, связанную с исходными файлами |
09 | нормализатор | deno lint | Нормализация исходных файлов |
10 | тестер | deno test | выполнить тест |
11 | Типер | deno types | Печать объявлений TypeScript во время выполнения |
12 | комплектовщик | deno completions | Создание информации о завершении оболочки |
13 | Обновление | deno upgrade | Обновите исполняемый файл Deno до заданной версии |
14 | РЕПЛайзер | deo repl | чтение/выполнение/печать/цикл |
Конкретные инструменты подробно обсуждаются в главе «Ознакомление со встроенным набором инструментов Deno».
Суммируйте 6 основных переменных среды
Эти 6 переменных среды изначально представлены в справочной информации:
серийный номер | имя переменной | использовать | Примечание |
---|---|---|---|
01 | DENO_DIR | установить каталог кеша | |
02 | DENO_INSTALL_ROOT | Устанавливает входной каталог пакета для установки Deno | По умолчанию $HOME/.deno/bin |
03 | NO_COLOR | Установите, чтобы отключить использование цветов | |
04 | DENO_CERT | Загрузите центр сертификации из файла с кодировкой PEM | |
05 | HTTP_PROXY | Прокси-адрес для HTTP-запросов | Загрузка и выборка модуля |
06 | HTTPS_PROXY | Прокси-адрес для HTTPS-запросов | Загрузка и выборка модуля |
Конкретные базовые переменные окружения будут более подробно рассмотрены в главе «Чтение переменных окружения Deno».
Прочтите общие инструкции Deno
Соответствующие фактические боевые коды включены вСклад "Дено Рисерч"в demos/ningowood/v1-cli-example.
Содержимое этой главы отсортировано от большего к меньшему по числу используемых 14 встроенных инструментов.
(01) --log-level/--quiet
Для этих двух директив доступны все встроенные инструменты.
В --log-level вы можете добавить параметры отладки или информации, чтобы установить уровень журнала. Когда он настроен на отладку, появится следующая информация. Это очень подробная информация, простой запуск и доступ к сети распечатают много строк журнала.
$ deno run --allow-net --log-level debug main.ts
Deno isolate init with snapshots.
rust:shared_queue:reset
DEBUG JS - cwd /Users/{$HOME}/WorkSpace/Hylerrix/deno-tutorial/demos/ningowood/v1-cli-example
DEBUG JS - args []
...
⚠️️ Granted network access to "0.0.0.0:8000"
New listener 3 0.0.0.0:8000
Welcome to Deno 🦕
http://localhost:8000/
DEBUG JS - sendAsync op_accept
Директива --quiet была поднята в выпуске 2019-10-20.Предложение новой функции (#3162), успешно добавлено 10 марта 2020 г. Одной из целей является решение ситуации, когда одна и та же программа выполняется несколько раз, но при этом выводятся разные результаты. Введение этой директивы в официальную документацию: Ограничьте читаемые диагностические сообщения общими типами ошибок.
(02) --unstable/--cert/--config
Эти три директивы являются тремя наиболее часто используемыми, за исключением --log-level и --quiet, которые могут использоваться всеми директивами.
--unstable Разрешить выполнение программы использовать нестабильный список API. Какой API нестабилен? Официальный документ сайта отвечает на это:
Несмотря на то, что API пространства имен Deno стабилизировался со времен Deno v1, не все функции Deno готовы к работе. Поскольку еще не готовая функция все еще находится на стадии черновика, она заблокирована флагом командной строки --unstable.
Нестабильные API в основном не проверяются с точки зрения безопасности, в будущем в них могут быть внесены критические изменения API, и они не готовы к работе.
При этом стандартные модули Deno (deno.land/std/) еще не стабилен. Текущая версия стандартных модулей Deno отличается от интерфейса командной строки, чтобы подчеркнуть нестабильность. Обратите внимание, что, в отличие от пространства имен Deno, флаг --unstable не требуется для использования стандартных модулей (если только сами стандартные модули не используют нестабильные функции Deno). Метод испытания:
$ deno install --unstable --allow-read --allow-write --allow-net https://deno.land/x/pagic/mod.ts
--cert используется для загрузки центра сертификации из файла с кодировкой PEM. Итак, возникает вопрос:
- Что такое ПЭМ? PEM Это формат контейнера, который может содержать только общедоступный сертификат или полную цепочку сертификатов, включая открытый ключ, закрытый ключ и корневой сертификат; название происходит от Privacy Enhanced Mail, типа частной почты, безопасность в области сетевой безопасности.
- формат PEM? Начинается с "-----BEGIN...", заканчивается "-----END...", содержимое представляет собой кодировку ASCII (Base64).
- Просмотр информации о сертификатах в формате PEM? openssl x509 -в сертификате.pem -текст -noout.
--config используется для чтения файла tsconfig.json, конечно, он также может читать файлы с другими именами, такими как tsconfig.json.
deno run --allow-net main.ts --config tsconfig.json
(03) --inspect*/--v8-flags
Эти команды можно использовать только в четырех наборах инструментов: run, eval, test или repl.
Deno поддерживает протокол V8 Inspector. Используйте команду --inspect или --inspect-brk для отладки программ Deno в Chrome Devtools или других клиентах, поддерживающих этот протокол (например, VSCode).
--inspect позволяет подключить отладчик в любой момент времени, а параметр --inspect-brk ожидает подключения отладчика, приостанавливая выполнение на первой строке кода. Введите следующий код, откройте chrome://inspect и нажмите Inspect рядом с целью для отладки и тестирования:
$ deno run --inspect-brk --allow-read --allow-net https://deno.land/std/http/file_server.ts
Debugger listening on ws://127.0.0.1:9229/ws/4947ac73-b9fc-4fd2-9336-c6071f4f3e9e
Debugger session started.
Debugger session ended: WebSocket protocol error: Connection reset without closing handshake.
HTTP server listening on http://0.0.0.0:4507/
--v8-flags ранее был --v8-options, в21.11.2019 (#3389)Заменен на --v8-flags, отвечающий за настройку параметров командной строки для v8. Конкретные параметры можно понимать так:
$ deno run --v8-flags=--help main.ts
SSE3=1 SSSE3=1 SSE4_1=1 SSE4_2=1 SAHF=1 AVX=1 FMA3=1 BMI1=1 BMI2=1 LZCNT=1 POPCNT=1 ATOM=0
Synopsis:
shell [options] [--shell] [<file>...]
d8 [options] [-e <string>] [--shell] [[--module] <file>...]
...
(04) --allow-*
--allow-* в целом используется только тремя инструментами запуска, установки и тестирования, включая:
- -A, --allow-all: Разрешить все разрешения, это отключит все ограничения безопасности.
- --allow-env: Разрешить доступ к среде, например чтение и установку переменных среды.
- --allow-hrtime: разрешить высокоточное измерение времени, которое можно использовать в атаках по времени и распознавании подписи.
- --allow-net: разрешить доступ к сети. Вы можете указать серию доменных имен, разделенных запятыми, чтобы предоставить белый список доменных имен.
- --allow-plugin: Разрешить загрузку плагинов. Обратите внимание: в настоящее время это нестабильная функция.
- --allow-read: Разрешить чтение файловой системы. Белый список файловой системы можно указать, указав список каталогов или файлов, разделенных запятыми.
- --allow-run: Разрешить запуск дочерних процессов. Обратите внимание, что подпроцессы не запускаются в песочнице и поэтому не имеют таких же ограничений безопасности, как процессы deno, используйте их с осторожностью.
- --allow-write: разрешить запись в файловую систему. Вы можете указать список каталогов или файлов, разделенных запятыми, чтобы предоставить белый список файловой системы.
В Denon (прослушивает все изменения в приложении Deno и перезапускает его автоматически, и можно настроить дополнительные функции) это можно установить так же просто, как это в denon.config.ts:
import { DenonConfig } from "https://deno.land/x/denon/mod.ts"
import { config as env } from "https://deno.land/x/dotenv/mod.ts"
const config: DenonConfig = {
scripts: {
start: {
allow: [ "env", "net", "read", "write", "plugin" ],
...
}
export default config
Выполните запуск denon, который по умолчанию заменит на:
$ deno run --allow-net --allow-env --allow-write --allow-read --allow-plugin --unstable main.ts
(05) --cached-only/--seed
Эти две директивы используются только инструментами запуска и тестирования.
--cached-only требует, чтобы удаленные зависимости были кэшированы.Когда мы используем эту команду для поиска программы Deno из удаленного места, которая не кэшировала свой пакет, она сообщит об ошибке, что пакет не может быть найден в кеше:
$ deno run --allow-net --cached-only not-cache.ts
error: Cannot find module "https://deno.land/x/alosaur@v0.21.1/mod.ts"
from "file:///Users/{$HOME}/WorkSpace/Hylerrix/deno-tutorial/
...demos/ningowood/v1-cli-example/not-cache.ts" in cache, --cached-only is specified
--seed Предоставляет программе случайное значение для заполнения. Как программа получает это случайное значение? Останься и подумай потом.
$ deno run --allow-net --seed 1 main.ts
(06) --reload/--lock*/.--no-*
Эти пять инструкций являются последними оставшимися инструкциями и используются следующими инструментами:
- --reload: запустить, кэшировать, документировать, тестировать
- --lock: запустить, связать, кэшировать, проверить
- --lock-write: запустить, связать, кэшировать, проверить
- --no-check: запустить, кэш, информация, тест
- --no-remote: запустить, кэшировать, проверить
--reload повторно кэширует исходный код и перекомпилирует TypeScript, который, в свою очередь, включает:
- --reload: перезагрузить весь исходный код
- --reload=deno.land/std: повторно кэшировать стандартную библиотеку...
- --reload=нет.слишком ленивый/кирпич и раствор/происходит/ут il…
--lock и --lock-write используются для проверки файла блокировки, потому что также важно управлять и блокировать версию файла в головокружительной многовариантности основных библиотек; --no-check отключает проверку типов TypeScript, что значительно сокращает время запуска программы Reduce; --no-remote, чтобы не разрешать удаленные модули.
$ deno run --allow-net --reload main.ts
$ deno run --allow-net --lock lock.json main.ts
Subresource integrity check failed --lock=lock.json
https://deno.land/std@0.63.0/textproto/mod.tsa
$ deno run --allow-net --no-check main.ts
$ deno run --allow-net --no-remote main.ts
Ознакомьтесь со встроенным набором инструментов Deno
Соответствующие фактические боевые коды включены вСклад "Дено Рисерч"в demos/ningowood/v1-cli-example.
Поскольку в этой статье все многоразовые инструкции встроенного инструментария Deno представлены в разделе «Чтение главы «Общие инструкции Deno» одна за другой. В этой главе подчеркивается независимость 14 встроенных наборов инструментов в виде каталогов (китайские имена названы в честь xx) и в дополнение к общим инструкциям даются некоторые уникальные введения.
(01) Бегун: дено бежать
Инструмент запуска поддерживает почти 100% общего списка команд (кроме команды --json), а все примеры общих команд в предыдущей главе являются примерами инструмента запуска, поэтому здесь нет необходимости говорить больше.
- deno-run: выполнение программы модуля, которая может быть именем файла или URL-адресом.
- Как использовать:
deno run [OPTIONS] <脚本参数>...
- Общие примеры:
# 默认情况下所有的程序都会运行在安全沙盒中,无法访问硬盘、网络或生成子进程。
$ deno run https://deno.land/std/examples/welcome.ts
# 给予所有权限
$ deno run -A https://deno.land/std/http/file_server.ts
# 给予读取权限和网络监听权限:
$ deno run --allow-read --allow-net https://deno.land/std/http/file_server.ts
# 给予允许读取权限的硬盘目录白名单:
$ deno run --allow-read=/etc https://deno.land/std/http/file_server.ts
# Deno 允许指定文件名 “-” 以从 stdin 中读取文件。
$ curl https://deno.land/std/examples/welcome.ts | target/debug/deno run -
(02) Установщик скрипта: deno install
- deno-install: Установите скрипт как исполняемый файл в каталог bin в корне пути установки`.
- Как использовать:
deno install [OPTIONS] <命令>...
- Уникальная команда:
-
-f, --force
: Принудительно перезаписать существующую установку -
-n, --name <NAME>
: имя исполняемого файла -
--root <PATH>
:путь установки
-
- Общие примеры:
$ deno install --allow-net --allow-read https://deno.land/std/http/file_server.ts
$ deno install https://deno.land/std/examples/colors.ts
# 要更改可执行文件的名称,请使用 -n/-name:
$ deno install --allow-net --allow-read -n serve https://deno.land/std/http/file_server.ts
# 可执行文件名称默认情况下被推断:
# - 尝试获取 URL 路径文件结构。正如上方上面的例子
# become 'file_server'.
# - 如果文件结构是通用名称(例如“main”、“mod”、“index”或“ cli”),并且该路径没有父级,则采用父级路径的文件名。否则,使用通用名称解决。
# 要更改安装根目录,请使用 --root:
$ deno install --allow-net --allow-read --root /usr/local https://deno.land/std/http/file_server.ts
# 按优先级确定安装路径的根目录:
# - --root option
# - DENO_INSTALL_ROOT 环境变量
# - $HOME/.deno
# 如果需要,必须将它们手动添加到路径中。
(03) Комплектация: комплект deno
- deno-bundle: пакет.
- Как использовать:
deno bundle [OPTIONS] <source_file> [out_file]
- Общие примеры:
# 输入一个单独的 JavaScript 文件,其拥有所有相关依赖:
$ deno bundle https://deno.land/std/examples/colors.ts colors.bundle.js
# 如果没有指定输入文件,输入将会写入到标准输出流中:
$ deno bundle https://deno.land/std/examples/colors.ts
(04) Кэш: дено кеш
- deno-cache: рекурсивно кэшировать и компилировать удаленные зависимости
- Как использовать:
deno cache [OPTIONS] <file>...
- Общие примеры:
# 下载并编译包括所有静态依赖项的模块并保存在
# 本地缓存中,无需运行任何代码:
$ deno cache https://deno.land/std/http/file_server.ts
# 除非以后运行此模块,否则不会触发下载或编译
# --reload 已指定。
(05) Генератор документации: deno doc
-
deno-doc: отображает документацию модуля
-
Как использовать:
deno doc [OPTIONS] [ARGS]
-
Уникальная команда:
-
--private
: вывод личных документов
-
-
Общие примеры:
# 输出文档到标准输入流中:
$ deno doc ./path/to/module.ts
# 输出私有文档到标准输出流中:
$ deno doc --private ./path/to/module.ts
# 以 JSON 格式输出文档:
$ deno doc --json ./path/to/module.ts
# 定位特定的符号:
$ deno doc ./path/to/module.ts MyClass.someField
# 显示运行时内置文档:
$ deno doc
$ deno doc --builtin Deno.Listener
(06) Привод: deno eval
-
deno-eval: выполнить код.
-
Как использовать:
deno eval [OPTIOS] <CODE>
-
Уникальная команда:
-
-p, --print
: вывести результат в стандартный поток вывода -
-T, --ts
: обрабатывать ввод как TypeScript
-
-
Общие примеры:
# 从命令行中执行 JavaScript。
$ deno eval "console.log('hello world')"
# 以 TypeScript 方式执行:
$ deno eval -T "const v: string = 'hello'; console.log(v)"
# 此命令具有对所有权限的隐式访问权限(--allow-all)。
(07) Форматер: deno fmt
- deno-fmt: автоматическое форматирование исходного кода JavaScript/TypeScript.
- Как использовать:
deno fmt [OPTIONS] [FILE]...
- Уникальная команда:
-
--check
: проверьте, отформатирован ли исходный файл. -
--ignore=<ignore>
: игнорировать форматирование определенных исходных файлов. Используйте с --unstable.
-
- Общие примеры:
$ deno fmt --help
$ deno fmt
$ deno fmt myfile1.ts myfile2.ts
$ deno fmt --check
# 格式化标准输入流并输出到标准输出流:
$ cat file.ts | deno fmt -
# 通过在其前面加上忽略注释来忽略此行代码格式化:
# // deno-fmt-ignore
# 通过在文件顶部添加忽略注释来忽略此文件格式化:
# // deno-fmt-ignore-file
(08) Средство проверки зависимостей: deno info
- deno-info: Информация о модулях или каталогах кеша.
- Как использовать:
deno info [OPTIONS] [FILE]
- Общие примеры:
# 获取有关模块的信息:
$ deno info https://deno.land/std/http/file_server.ts
# 将显示以下信息:
# local: 文件的本地路径
# type: JavaScript、TypeScript 或者 JSON。
# compiled: 编译源代码的本地路径。(仅 TypeScript)
# map: 源映射的本地路径。 (仅 TypeScript)
# deps: 源文件的依赖关系树。
# 没有任何其他参数,“deno info” 将显示:
# DENO_DIR: 包含 Deno 管理文件的目录。
# Remote modules cache: 包含下载的远程模块的子目录。
# TypeScript compiler cache: 包含 TS 编译器输出的子目录。
(09) Нормализатор: deno lint
- deno-lint: стандартизированный исходный код JavaScript/TypeScript.
- Уникальная команда:
- --rules: список доступных правил
- Как использовать: дено линт
[OPTIONS] [FILE]...
- Общие примеры:
$ deno lint --unstable
$ deno lint --unstable myfile1.ts myfile2.js
# 列出可用规则:
$ deno lint --unstable --rules
# 通过在其前面加上忽略注释来忽略下一行的诊断,规则名称:
# // deno-lint-ignore no-explicit-any
# // deno-lint-ignore require-await no-empty
# 必须在忽略注释之后指定要忽略的规则的名称。
# 还支持 ESLint 忽略注释:
# // eslint-ignore-next-line @typescrit-eslint/no-explicit-any no-empty
# 通过在文件顶部添加忽略注释来忽略整个文件:
# // deno-lint-ignore-file
(10) Тестер: дено-тест
- deno-test: запускайте тесты с помощью встроенного средства запуска тестов Deno.
- Как использовать:
deno test [OPTIONS] [文件名]...
- Уникальная команда:
- --allow-none: не возвращать код ошибки, если тестовый файл не найден
- --failfast: остановить при первой ошибке
- --filter : запускать тесты с этой строкой или шаблоном в имени теста
- Общие примеры:
# 执行给定的模块,运行'Deno.test()'声明的所有测试,然后将结果输出到到标准输出溜中:
$ deno test src/fetch_test.ts src/signal_test.ts
# 目录参数扩展为与 glob 匹配的所有包含文件
# {*_,*.,}test.{js,mjs,ts,jsx,tsx}:
$ deno test src/
(11) Тип: deno типы
- deno-types: Печатать объявления TypeScript во время выполнения.
- Как использовать:
deno types [OPTIONS]
- Общие примеры:
$ deno types --help
$ deno types > lib.deno.d.ts
# 声明文件可以保存并用于录入新内容。
(12) Устройство завершения: deno завершения
- deno-completions: ввод завершений оболочки в стандартный поток вывода.
- Как использовать:
deno completions [OPTIONS] <shell>
- Общие примеры:
$ deno completions bash > /usr/local/etc/bash_completion.d/deno.bash
$ source /usr/local/etc/bash_completion.d/deno.bash
# [shell 可能的值: zsh, bash, fish, powershell, elvish]
(13) Апгрейдер: дено апгрейд
- deno-upgrade: обновить исполняемый файл deno до указанной версии.
- Как использовать:
deno upgrade [OPTIONS]
- Уникальная команда:
-
--dry-run
: выполнить все проверки без замены старого exe -
-f, --force
: заменить текущий исполняемый файл, даже если срок его действия не истек -
--output <output>
: путь для вывода обновленной версии в -
--version <version>
: номер версии, до которой вы хотите обновить
-
- Общие примеры:
$ deno upgrade --help
# 默认将更新到最新版。
# 该版本是从这里下载:
# https://github.com/denoland/deno/releases
# 并且用于替换当前的可执行文件。
# 如果您不想替换当前的 Deno 可执行文件,而是下载一个新版本到其他位置,请使用 --output 标志
$ deno upgrade --output $HOME/my_deno
(14) Устройство REPL: deno repl
- deno-repl: прочитать выполнить цикл печати
- Как использовать:
deno repl [OPTIONS]
- Общие примеры:
$ deno repl # deno
Чтение переменных окружения Deno
Соответствующие фактические боевые коды включены вСклад "Дено Рисерч"в demos/ningowood/v1-cli-example.
(01) DENO_DIR
DENO_DIR по умолчанию имеет значение $HOME/.cache/deno, но может быть установлен любой путь. Это путь, по которому Deno будет хранить сгенерированный код и кешированный исходный код.
Введите информацию о deno, чтобы увидеть собственное местоположение кеша, которое предоставляет специальный каталог для удаленных модулей и местоположений компиляции TypeScript.
$ deno info
# DENO_DIR 位置: "/Users/{$HOME}/Library/Caches/deno"
# 远程模块缓存位置: "/Users/{$HOME}/Library/Caches/deno/deps"
# TypeScript 编译缓存位置: "/Users/{$HOME}/Library/Caches/deno/gen"
$ tree -L 2 /Users/{$HOME}/Library/Caches/deno
.
├── deno_history.txt
├── deps
│ ├── http
│ └── https
├── gen
│ ├── xxx.js
│ ├── xxx.js.map
│ ├── file
│ └── https
├── lib.deno.d.ts
├── lib.deno_runtime.d.ts
└── lib.webworker.d.ts
(02) DENO_INSTALL_ROOT
По умолчанию $HOME/.deno/bin. Введите следующую команду, вы увидите несколько программ Deno, которые я сейчас устанавливаю глобально:
$ tree /Users/{$HOME}/.deno
.
└── bin
├── Trex
├── Trex_Cache_Map
├── deno
├── denon
├── pagic
└── vr
(02) NO_COLOR
Если NO_COLOR установлен, Deno отключит вывод цвета (no-color.org). Пользовательский код может проверить, установлен ли NO_COLOR с помощью логической константы Deno.noColor, которая не требует разрешений среды (--allow-env).
$ deno run var.ts
Check file:///Users/didi/WorkSpace/Hylerrix/deno-tutorial/demos/ningowood/v1-cli-example/no-color.ts
false
(03) DENO_CERT & HTTP*_PROXY
Оставьте пустым, чтобы угадать, как.
Резюме и подписка
На этом статья «Чтение всех возможностей Deno v1.x из команд CLI» завершена. За более чем 14-часовой процесс написания было получено много вдохновения, и я заинтересован в большем количестве контента и чувствую, что могу копнуть глубже. Однако содержание, которое может нести статья, очень ограничено, поэтому некоторые интересные темы, о которых можно подумать из этой статьи, будут отложены до прочтения. В то же время вполне вероятно, что в будущем в качестве новых функций будет представлено больше команд, и, возможно, некоторые команды нельзя будет включить, потому что они не указаны в справочной информации документации.
Короче говоря, есть много мест, где можно продолжить обучение! Есть также много точек зрения, с которых можно начать изучение Deno. Я с нетерпением жду возможности получить более полное представление о возможностях Deno CLI после совместного практического программирования.
подписка? тебе известно:
- склад:GitHub.com/Добро пожаловать и японский/…
- Официальный сайт:deno-tutorial.js.org
- Мне:github.com/hylerrix