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/fmt