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
Чтение из stdin:
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>
Укажите расширение файла для проверки при чтении из stdin. Например, используйте jsx для проверки файлов JSX или tsx для файлов TSX. Этот аргумент необходим, поскольку тип файла для входных данных из stdin не определяется автоматически. Пример использования: 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/linter