Линтинг и форматирование
Deno включает линтер и средство форматирования в бинарный файл deno. Ничего не нужно устанавливать и настраивать — файлы конфигурации не требуются:
deno lint # catch bugs and anti-patterns
deno fmt # format code, markdown, and JSON
Оба инструмента работают быстро, одинаково запускаются локально и в CI, а их настройки (если они вам вообще понадобятся) хранятся в том же deno.json, что и остальные настройки проекта.
Линтинг
Ознакомьтесь со всеми правилами линтинга
Линтинг — это анализ кода для выявления потенциальных ошибок, багов и проблем со стилем. Встроенный линтер Deno — deno lint — поддерживает рекомендуемый набор правил ESLint, чтобы предоставить подробную обратную связь по вашему коду. Это включает поиск синтаксических ошибок, соблюдение соглашений о написании кода и выявление потенциальных проблем, которые могут привести к багам.
Чтобы запустить линтер, выполните в терминале следующую команду:
deno lint
По умолчанию deno lint анализирует все файлы TypeScript и JavaScript в текущем каталоге и его подкаталогах. Чтобы проверить определённые файлы или каталоги, передайте их команде в качестве аргументов. Например:
deno lint src/
Эта команда проверит все файлы в каталоге src/.
При обнаружении проблемы указываются название правила, проблемный фрагмент кода и подсказка:
$ deno lint main.ts
error[require-await]: Async function 'fetchData' has no 'await' expression
--> /project/main.ts:1:1
|
1 | async function fetchData() {
| ^^^^^
= hint: Remove 'async' keyword from the function or use 'await' expression inside.
docs: https://docs.deno.com/lint/rules/require-await
Found 1 problem
Checked 1 file
Некоторые правила могут исправить проблему автоматически: запустите deno lint --fix, чтобы применить такие исправления. Чтобы отключить правило для одной строки, добавьте над ней директиву игнорирования с названием этого правила:
// deno-lint-ignore require-await
async function fetchData() {
return "data";
}
См. справочник deno lint, где перечислены все флаги и варианты директив.
Настроить линтер можно в файле deno.json. Вы можете указать пользовательские правила, плагины и параметры в соответствии со своими потребностями.
Правила линтинга
Список доступных правил и информацию об их использовании можно просмотреть и найти на странице документации «Список правил».
Форматирование
Форматирование — это автоматическое изменение структуры кода для соблюдения единообразного стиля. Встроенное средство форматирования Deno, deno fmt, использует мощный движок dprint, чтобы ваш код всегда оставался аккуратным, читабельным и единообразным.
Чтобы отформатировать код, просто выполните в терминале следующую команду:
deno fmt
По умолчанию deno fmt форматирует все файлы TypeScript и JavaScript в текущем каталоге и его подкаталогах. Чтобы отформатировать определённые файлы или каталоги, передайте их команде в качестве аргументов. Например:
deno fmt src/
Эта команда отформатирует все файлы в каталоге src/.
Проверка форматирования
Команда deno fmt --check проверяет, правильно ли отформатирован ваш код в соответствии с правилами форматирования Deno по умолчанию. Вместо изменения файлов она проверяет их и сообщает о проблемах с форматированием. Это особенно полезно при интеграции в конвейеры непрерывной интеграции (CI) или хуки pre-commit, чтобы обеспечить единообразие кода во всём проекте.
Если обнаружены проблемы с форматированием, deno fmt --check перечислит файлы, которые нужно отформатировать. Если все файлы отформатированы правильно, команда завершится без вывода.
Интеграция в CI
Вы можете добавить deno fmt --check в конвейер CI для автоматической проверки проблем с форматированием. Например, в рабочем процессе GitHub Actions:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- run: deno fmt --check
Это гарантирует, что все изменения кода будут соответствовать стандартам форматирования проекта до слияния.
Интеграция в VS Code
Чтобы использовать Deno для форматирования в VS Code, установите расширение Deno и добавьте файл .vscode/settings.json в корень проекта. В нём задайте средство форматирования по умолчанию и включите расширение для проекта:
{
"deno.enablePaths": ["./deno.json"],
"editor.defaultFormatter": "denoland.vscode-deno",
"editor.formatOnSave": true
}
Если файл deno.json(c) находится в подкаталоге проекта, вместо этого укажите правильный относительный путь к нему.
Конфигурация
Настройки средства форматирования задаются с помощью поля fmt в файле deno.json. Полный список параметров и их значений по умолчанию см. в разделе все параметры форматирования.
deno fmt также считывает файлы .editorconfig и использует их для заполнения параметров, которые не заданы через флаг CLI или блок deno.json fmt. Приоритет параметров следующий: флаги CLI, затем deno.json, затем .editorconfig, а после них — встроенные значения по умолчанию. Таким образом, значение .editorconfig применяется, только если оно не задано на более приоритетном уровне. Сопоставление свойств см. в разделе Наследование настроек из .editorconfig.
Использование других линтеров и средств форматирования
Встроенные в Deno deno lint и deno fmt подходят для большинства проектов, но вы также можете запускать популярные сторонние инструменты без глобальной установки. Поскольку Deno запускает npm-пакеты напрямую, deno run -A npm:<tool> запускает их без отдельного этапа npm install. Чтобы не вводить команды вручную, добавьте команду как задачу в файл deno.json и запускайте её с помощью deno task.
ESLint
ESLint требует файл плоской конфигурации eslint.config.js. Укажите его пакеты с помощью спецификаторов npm:, чтобы Deno мог их разрешить:
import js from "npm:@eslint/js";
import globals from "npm:globals";
export default [
js.configs.recommended,
{
files: ["**/*.ts", "**/*.js"],
languageOptions: {
globals: { ...globals.node, Deno: "readonly" },
},
},
];
Затем запустите его для всего проекта:
deno run -A npm:eslint .
Объявление глобальных переменных Node и Deno предотвращает ложные ошибки no-undef для таких глобальных переменных, как console. Для линтинга TypeScript с учётом типов добавьте в конфигурацию typescript-eslint.
Расширению ESLint для VS Code нужен настоящий каталог node_modules, чтобы находить ESLint и его плагины. Укажите "nodeModulesDir": "auto" в файле deno.json и выполните deno install, чтобы пакеты были размещены на диске.
oxlint
oxlint — быстрый линтер на Rust, который работает без конфигурации:
deno run -A npm:oxlint@latest
Он проверяет текущий каталог и выводит найденные проблемы:
sample.ts:3:5: warning eslint(no-unused-vars): Variable 'unused' is declared but never used.
Prettier
Prettier форматирует код без дополнительной настройки:
# report files that need formatting
deno run -A npm:prettier --check .
# format files in place
deno run -A npm:prettier --write .
Biome
Biome — быстрый линтер и инструмент форматирования на Rust, объединённые в одном решении. Он также работает без настройки:
# lint and check formatting
deno run -A npm:@biomejs/biome check .
# format files in place
deno run -A npm:@biomejs/biome format --write .
# lint only
deno run -A npm:@biomejs/biome lint .
Чтобы настроить Biome, создайте файл biome.json с помощью deno run -A npm:@biomejs/biome init.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/lint_and_format