deno lint
Deno поставляется со встроенным линтером, который анализирует код на наличие потенциальных ошибок, дефектов и проблем со стилем. Более подробный обзор см. в разделе Проверка и форматирование.
Основное использование
Проверить все файлы TypeScript и JavaScript в текущем каталоге:
deno lint
Проверить указанные файлы или каталоги:
deno lint src/ main.ts
Режим наблюдения
Автоматически повторно проверять файлы при их изменении:
deno lint --watch
Использование в CI
deno lint завершается с ненулевым кодом состояния при обнаружении нарушений, поэтому его можно использовать в конвейерах CI:
deno lint
deno fmt --check
deno test
Доступные правила
Линтер Deno включает более 100 правил. Просмотреть все доступные правила:
deno lint --rules
Полный список с документацией см. в справочнике правил линтера.
Настройка правил в deno.json
Настройте активные правила в файле deno.json:
{
"lint": {
"rules": {
"tags": ["recommended"],
"include": ["ban-untagged-todo"],
"exclude": ["no-unused-vars"]
}
}
}
-
tags— наборы правил для включения. Доступные теги:recommended,fresh -
include— дополнительные отдельные правила для включения -
exclude— правила, которые нужно отключить, даже если они входят в тег
Многие правила не относятся ни к одному тегу (например, eqeqeq или no-console). Такие правила не включаются с помощью tags, и их необходимо активировать, перечислив по отдельности в include. Проверить, есть ли у правила тег, можно с помощью deno lint --rules или на странице каждого правила в справочнике правил линтера.
Все доступные параметры см. на странице Конфигурация.
Включение и исключение файлов
Укажите файлы для проверки в deno.json:
{
"lint": {
"include": ["src/"],
"exclude": ["src/testdata/", "src/generated/**/*.ts"]
}
}
Файлы также можно исключить в командной строке:
deno lint --ignore=dist/,build/
Плагины линтера
Расширить линтер пользовательскими правилами можно с помощью плагинов линтера.
Директивы игнорирования
На уровне файла
Чтобы игнорировать весь файл, добавьте // deno-lint-ignore-file в начало файла:
// deno-lint-ignore-file
function foo(): any {
// ...
}
Также можно указать причину игнорирования файла:
// deno-lint-ignore-file -- reason for ignoring
function foo(): any {
// ...
}
Директива игнорирования должна находиться перед первым оператором или объявлением:
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
/**
* Some JS doc
*/
// deno-lint-ignore-file
import { bar } from "./bar.js";
function foo(): any {
// ...
}
Также можно игнорировать определённые диагностические сообщения во всём файле:
// deno-lint-ignore-file no-explicit-any no-empty
function foo(): any {
// ...
}
Если указано несколько директив // deno-lint-ignore-file, игнорируются все, кроме первой:
// This is effective
// deno-lint-ignore-file no-explicit-any no-empty
// But this is NOT effective
// deno-lint-ignore-file no-debugger
function foo(): any {
debugger; // not ignored!
}
На уровне строки
Чтобы игнорировать определённые диагностические сообщения, используйте // deno-lint-ignore <codes...> в строке перед строкой с нарушением.
// deno-lint-ignore no-explicit-any
function foo(): any {
// ...
}
// deno-lint-ignore no-explicit-any explicit-function-return-type
function bar(a: any) {
// ...
}
Необходимо указать имена игнорируемых правил.
Также можно указать причину игнорирования диагностического сообщения:
// deno-lint-ignore no-explicit-any -- reason for ignoring
function foo(): any {
// ...
}
Игнорирование самого ban-unused-ignore
deno lint предоставляет правило ban-unused-ignore, которое обнаруживает директивы игнорирования, не подавляющие ни одного диагностического сообщения. Это полезно, когда нужно найти директивы игнорирования, которые больше не нужны после рефакторинга кода.
Однако в некоторых случаях может потребоваться игнорировать само правило ban-unused-ignore. Типичный пример — работа с автоматически сгенерированными файлами: имеет смысл добавить директивы игнорирования на уровне файла для некоторых правил, и в этом случае почти нет необходимости выявлять неиспользуемые директивы с помощью ban-unused-ignore.
Чтобы подавить правило для всего файла, как обычно, можно использовать // deno-lint-ignore-file ban-unused-ignore:
// deno-lint-ignore-file ban-unused-ignore no-explicit-any
// `no-explicit-any` isn't used but you'll get no diagnostics because of ignoring
// `ban-unused-ignore`
console.log(42);
Обратите внимание: игнорировать само ban-unused-ignore можно только с помощью директив игнорирования на уровне файла. Это означает, что директивы для отдельных строк, например // deno-lint-ignore ban-unused-ignore, не работают. Если по особым причинам нужно игнорировать ban-unused-ignore, обязательно добавьте его в директиву игнорирования на уровне файла.
deno lint [OPTIONS] [files]...Проверить исходный код JavaScript/TypeScript.
deno lint
deno lint myfile1.ts myfile2.js
Вывести результат в формате JSON:
deno lint --json
Читать из стандартного ввода:
cat file.ts | deno lint -
cat file.ts | deno lint --json -
Вывести список доступных правил:
deno lint --rules
Чтобы игнорировать определённые диагностические сообщения, добавьте комментарий игнорирования в предыдущую строку, указав имя одного или нескольких правил:
// deno-lint-ignore no-explicit-any
// deno-lint-ignore require-await no-empty
Чтобы отключить проверку всего файла, добавьте комментарий игнорирования в начало файла:
// deno-lint-ignore-file
Параметры проверки
--compactВыводить результат проверки в компактном формате.
--fixИсправлять ошибки проверки для правил, поддерживающих автоматическое исправление.
--ignore<ignore>
Не проверять указанные исходные файлы.
--jsonВыводить результат проверки в формате JSON.
--rulesВывести список доступных правил.
--rules-exclude<rules-exclude>
Исключить правила линтера.
--rules-include<rules-include>
Включить правила линтера.
Параметры
--allow-import, -I<IP_OR_HOSTNAME>необязательно
Разрешить импорт с удалённых хостов. При необходимости укажите разрешённые IP-адреса и имена хостов, включая порты. Значение по умолчанию: deno.land:443,jsr.io:443,esm.sh:443,raw.esm.sh:443,cdn.jsdelivr.net:443,raw.githubusercontent.com:443,gist.githubusercontent.com:443.
--config, -c<FILE>
Настроить различные аспекты Deno, включая TypeScript, проверку и форматирование кода. Обычно файл конфигурации называется deno.json или deno.jsonc и обнаруживается автоматически; в этом случае этот флаг не требуется.
--deny-import<IP_OR_HOSTNAME>необязательно
Запретить импорт с удалённых хостов. При необходимости укажите запрещённые IP-адреса и имена хостов, включая порты.
--ext<EXT>
Указать расширение файла для проверки при чтении из стандартного ввода. Например, используйте jsx для проверки файлов JSX или tsx для файлов TSX. Этот аргумент необходим, поскольку тип файла для ввода из стандартного потока не определяется автоматически. Пример использования: cat file.jsx | deno lint - --ext=jsx.
--no-configОтключить автоматическую загрузку файла конфигурации.
--permit-no-filesНе возвращать код ошибки, если файлы не найдены.
Параметры наблюдения за файлами
--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/lint