deno fmt
Deno включает встроенный форматтер кода на основе dprint, который автоматически форматирует код, обеспечивая единообразный стиль. Общий обзор см. в разделе Проверка и форматирование кода.
Основные сведения об использовании
Форматирование всех поддерживаемых файлов в текущем каталоге:
deno fmt
Форматирование отдельных файлов или каталогов:
deno fmt main.ts src/
Режим наблюдения
Автоматическое повторное форматирование файлов при их изменении:
deno fmt --watch
Проверка форматирования в CI
Используйте --check, чтобы проверить форматирование файлов без их изменения. Команда завершится с ненулевым кодом возврата, если какие-либо файлы не отформатированы:
deno fmt --check
Добавьте --fail-fast, чтобы остановиться на первом неотформатированном файле, а не выводить сведения обо всех таких файлах. Это удобно для больших кодовых баз:
deno fmt --check --fail-fast
Форматирование stdin
Форматирование кода, переданного через stdin, — удобно для интеграции с редакторами:
cat main.ts | deno fmt -
Настройка форматтера
Настройте параметры форматирования в файле deno.json:
{
"fmt": {
"useTabs": false,
"lineWidth": 80,
"indentWidth": 2,
"semiColons": true,
"singleQuote": false,
"proseWrap": "preserve"
}
}
Полный список доступных параметров см. на странице Конфигурация.
Наследование настроек из .editorconfig
deno fmt также считывает файлы .editorconfig и использует их, чтобы задать параметры форматирования, которые вы не указали другим способом. Приоритет параметров, от высшего к низшему:
- Флаги CLI (
--indent-width,--use-tabsи т. д.) - Блок
fmtв файлеdeno.json .editorconfig- Встроенные значения по умолчанию
Таким образом, .editorconfig задаёт только те значения, которые вы ещё не настроили с помощью флага или deno.json. Такие свойства, как indent_style, indent_size и max_line_length, соответствуют параметрам deno fmt.
Включение и исключение файлов
Укажите, какие файлы нужно форматировать, в deno.json:
{
"fmt": {
"include": ["src/"],
"exclude": ["src/testdata/", "src/generated/**/*.ts"]
}
}
Также можно исключить файлы из командной строки:
deno fmt --ignore=dist/,build/
Поддерживаемые типы файлов
| Тип файла | Расширение | Примечания |
|---|---|---|
| JavaScript |
.js, .cjs, .mjs
| |
| TypeScript |
.ts, .mts, .cts
| |
| JSX | .jsx | |
| TSX | .tsx | |
| Markdown |
.md, .mkd, .mkdn, .mdwn, .mdown, .markdown
| |
| JSON | .json | |
| JSONC | .jsonc | |
| CSS | .css | |
| HTML | .html | |
| XML | .xml | |
| SVG | .svg | |
| Nunjucks | .njk | |
| Vento | .vto | |
| YAML |
.yml, .yaml
| |
| SCSS | .scss | |
| LESS | .less | |
| Блокнот Jupyter | .ipynb | |
| Astro | .astro | Требуется флаг --unstable-component или параметр конфигурации "unstable": ["fmt-component"]. |
| Svelte | .svelte | Требуется флаг --unstable-component или параметр конфигурации "unstable": ["fmt-component"]. |
| Vue | .vue | Требуется флаг --unstable-component или параметр конфигурации "unstable": ["fmt-component"]. |
| SQL | .sql | Требуется флаг --unstable-sql или параметр конфигурации "unstable": ["fmt-sql"]. |
deno fmt умеет форматировать фрагменты кода в файлах Markdown. Фрагменты должны быть заключены в тройные обратные кавычки и иметь атрибут языка.
Средства форматирования разметки (HTML, XML, SVG и форматы --unstable-component), а также таблиц стилей (CSS, SCSS и Less) были переработаны так, чтобы изменять только пробельные символы. Они никогда не переставляют и не переписывают токены и пропускают неизвестный синтаксис (расширения поставщиков, будущие at-правила, шаблонные выражения и даже некорректную разметку) без изменений, вместо того чтобы выдавать ошибку. Благодаря этому форматирование надёжнее работает с реальными файлами.
Исключение кода из форматирования
JavaScript / TypeScript / JSONC
Чтобы исключить код из форматирования, предварите его комментарием // deno-fmt-ignore:
// deno-fmt-ignore
export const identity = [
1, 0, 0,
0, 1, 0,
0, 0, 1,
];
Чтобы исключить из форматирования весь файл, добавьте комментарий // deno-fmt-ignore-file в начало файла.
Markdown / HTML / CSS
Чтобы исключить следующий элемент из форматирования, предварите его комментарием <!--- deno-fmt-ignore -->:
<html>
<body>
<p>
Hello there
<!-- deno-fmt-ignore -->
</p>
</body>
</html>
Чтобы исключить из форматирования фрагмент кода, заключите его между комментариями <!-- deno-fmt-ignore-start --> и <!-- deno-fmt-ignore-end -->.
Чтобы исключить из форматирования весь файл, добавьте комментарий <!-- deno-fmt-ignore-file --> в начало файла.
YAML
Чтобы исключить следующий элемент из форматирования, предварите его комментарием # deno-fmt-ignore:
# deno-fmt-ignore aaaaaa: bbbbbbb
deno fmt [OPTIONS] [files]...Автоматическое форматирование файлов различных типов.
deno fmt myfile1.ts myfile2.ts
Поддерживаются следующие типы файлов:
JavaScript, TypeScript, Markdown, JSON(C) and Jupyter Notebooks
Поддерживаемые типы файлов, для которых требуются соответствующие нестабильные флаги (см. параметры форматирования):
HTML, CSS, SCSS, LESS, YAML, Svelte, Vue, Astro and Angular
Форматирование stdin и запись результата в stdout:
cat file.ts | deno fmt -
Проверка форматирования файлов:
deno fmt --check
Чтобы исключить код из форматирования, предварите его комментарием исключения:
// deno-fmt-ignore
Чтобы исключить файл из форматирования, добавьте комментарий исключения в начало файла:
// deno-fmt-ignore-file
Параметры
--config, -c<FILE>
Настройка различных аспектов Deno, включая TypeScript, проверку кода и форматирование. Обычно файл конфигурации называется deno.json или deno.jsonc и обнаруживается автоматически; в этом случае указывать данный флаг не нужно.
--no-configОтключить автоматическую загрузку файла конфигурации.
--permit-no-filesНе возвращать код ошибки, если файлы не найдены.
Параметры форматирования
--checkПроверить форматирование исходных файлов.
--ext<ext>
Задать тип содержимого переданного файла.
--fail-fastПрекратить проверку файлов при первой ошибке форматирования.
--ignore<ignore>
Исключить указанные исходные файлы из форматирования.
--indent-width<indent-width>
Задать ширину отступа [по умолчанию: 2]
--line-width<line-width>
Задать максимальную ширину строки [по умолчанию: 80]
--no-editorconfigНе считывать файлы .editorconfig для определения параметров форматирования [по умолчанию: false]
--no-semicolons<no-semicolons>необязательно
Не использовать точки с запятой, кроме случаев, когда они необходимы [по умолчанию: false]
--prose-wrap<prose-wrap>
Задать способ переноса текста [по умолчанию: always]
--single-quote<single-quote>необязательно
Использовать одинарные кавычки [по умолчанию: false]
--unstable-componentВключить форматирование файлов Svelte, Vue, Astro и Angular.
--unstable-sqlВключить форматирование файлов SQL.
--use-tabs<use-tabs>необязательно
Использовать для отступов табуляцию вместо пробелов [по умолчанию: false]
Параметры наблюдения за файлами
--no-clear-screenНе очищать экран терминала в режиме наблюдения.
--watch<FILES>необязательно
Наблюдать за изменениями файлов и автоматически перезапускать процесс. По умолчанию отслеживаются локальные файлы из графа модулей точки входа. Дополнительные пути можно отслеживать, передав их аргументами этому флагу.
--watch-exclude<FILES>необязательно
Исключить указанные файлы и шаблоны из режима наблюдения.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/formatter