Spec-Zone.ru › Deno 2

Линтинг и форматирование

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 мог их разрешить:

eslint.config.js
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.

Последнее обновление: 25 июня 2026 г.

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/lint_and_format

Spec-Zone.ru

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