Веб-сайт | Настроить ESLint | Правила | Внесите свой вклад в ESLint | Сообщить об ошибках | Кодекс поведения | Твиттер | Раздор | Мастодонт
ESLint — это инструмент для выявления шаблонов, обнаруженных в коде ECMAScript/JavaScript, и составления отчетов о них. Во многом он похож на JSLint и JSHint за некоторыми исключениями:
Предварительные требования: Node.js ( ^18.18.0
, ^20.9.0
или >=21.1.0
), созданный с поддержкой SSL. (Если вы используете официальный дистрибутив Node.js, SSL всегда встроен.)
Вы можете установить и настроить ESLint с помощью этой команды:
npm init @eslint/config@latest
После этого вы можете запустить ESLint для любого файла или каталога следующим образом:
npx eslint yourfile.js
Вы можете настроить правила в файлах eslint.config.js
, как показано в этом примере:
export default [
{
files : [ "**/*.js" , "**/*.cjs" , "**/*.mjs" ] ,
rules : {
"prefer-const" : "warn" ,
"no-constant-binary-expression" : "error"
}
}
] ;
Имена "prefer-const"
и "no-constant-binary-expression"
— это имена правил в ESLint. Первое значение — это уровень ошибки правила и может быть одним из следующих значений:
"off"
или 0
- выключить правило"warn"
или 1
- включить правило как предупреждение (не влияет на код выхода)"error"
или 2
- включить правило как ошибку (код выхода будет 1)Три уровня ошибок позволяют вам детально контролировать, как ESLint применяет правила (дополнительные параметры конфигурации и подробную информацию см. в документации по конфигурации).
Команда ESLint обеспечивает постоянную поддержку текущей версии и шестимесячную ограниченную поддержку предыдущей версии. Ограниченная поддержка включает только исправления критических ошибок, проблемы безопасности и совместимости.
ESLint предлагает коммерческую поддержку как текущей, так и предыдущих версий через наших партнеров Tidelift и HeroDevs.
Дополнительную информацию см. в разделе «Поддержка версий».
ESLint придерживается Кодекса поведения OpenJS Foundation.
Прежде чем сообщить о проблеме, обязательно прочтите правила относительно того, о чем вы сообщаете:
Да, ESLint изначально поддерживает синтаксический анализ JSX (это должно быть включено в конфигурации). Обратите внимание, что поддержка синтаксиса JSX — это не то же самое, что поддержка React. React применяет к синтаксису JSX особую семантику, которую ESLint не распознает. Мы рекомендуем использовать eslint-plugin-react, если вы используете React и хотите использовать семантику React.
Нет, у ESLint и Prettier разные задачи: ESLint — это линтер (ищет проблемные шаблоны), а Prettier — форматировщик кода. Использование обоих инструментов является обычным явлением. Обратитесь к документации Prettier, чтобы узнать, как настроить их для хорошей работы друг с другом.
ESLint полностью поддерживает ECMAScript 3, 5 и ежегодно с 2015 года до самой последней спецификации этапа 4 (по умолчанию). Вы можете установить желаемый синтаксис ECMAScript и другие параметры (например, глобальные переменные) посредством конфигурации.
Парсер ESLint официально поддерживает только последний окончательный стандарт ECMAScript. Мы внесем изменения в основные правила, чтобы избежать сбоев на этапе 3 предложений синтаксиса ECMAScript (при условии, что они реализованы с использованием правильного экспериментального синтаксиса ESTree). Мы можем вносить изменения в основные правила, чтобы лучше работать с языковыми расширениями (такими как JSX, Flow и TypeScript) в каждом конкретном случае.
В других случаях (в том числе, если правила должны предупреждать о большем или меньшем количестве случаев из-за нового синтаксиса, а не просто из-за сбоя), мы рекомендуем вам использовать другие анализаторы и/или плагины правил. Если вы используете Babel, вы можете использовать @babel/eslint-parser и @babel/eslint-plugin, чтобы использовать любую опцию, доступную в Babel.
Как только языковая функция будет принята в стандарт ECMAScript (этап 4 в соответствии с процессом TC39), мы будем принимать проблемы и запросы на включение, связанные с новой функцией, в соответствии с нашими рекомендациями по участию. А до тех пор используйте соответствующий парсер и плагины для вашей экспериментальной функции.
ESLint обновляет поддерживаемые версии Node.js с каждым основным выпуском ESLint. В это время поддерживаемые ESLint версии Node.js обновляются следующим образом:
Ожидается также, что ESLint будет работать с версиями Node.js, выпущенными после текущей версии Node.js.
Обратитесь к Краткому руководству по началу работы, чтобы узнать об официально поддерживаемых версиях Node.js для данного выпуска ESLint.
Откройте обсуждение или зайдите на наш сервер Discord.
Файлы блокировки, такие как package-lock.json
полезны для развернутых приложений. Они гарантируют согласованность зависимостей между средами и развертываниями.
Такие пакеты, как eslint
, которые публикуются в реестре npm, не включают файлы блокировки. npm install eslint
, поскольку пользователь будет соблюдать ограничения версии в package.json
ESLint. ESLint и его зависимости будут включены в файл блокировки пользователя, если он существует, но собственный файл блокировки ESLint использоваться не будет.
Мы намеренно не блокируем версии зависимостей, чтобы у нас были последние совместимые версии зависимостей в разработке и CI, которые наши пользователи получают при установке ESLint в проекте.
В блоге Twilio есть более глубокая информация, чтобы узнать больше.
У нас запланированы выпуски каждые две недели в пятницу или субботу. Вы можете следить за выпуском выпуска, чтобы получать обновления о расписании любого конкретного выпуска.
ESLint серьезно относится к безопасности. Мы прилагаем все усилия, чтобы гарантировать, что ESLint безопасен для всех, а проблемы безопасности решаются быстро и ответственно. Прочтите полную политику безопасности.
ESLint использует семантическое управление версиями. Однако из-за того, что ESLint является инструментом качества кода, не всегда ясно, когда происходит незначительное или основное изменение версии. Чтобы прояснить это для всех, мы определили следующую политику семантического управления версиями для ESLint:
eslint:recommended
обновляется и приводит к значительному уменьшению количества ошибок линтинга (например, удаления правил).eslint:recommended
обновляется и может привести к появлению новых ошибок проверки (например, добавлению правил, обновлению большинства опций правил). Согласно нашей политике, любое незначительное обновление может сообщать о большем количестве ошибок линтинга, чем предыдущая версия (например, из-за исправления ошибки). Поэтому мы рекомендуем использовать тильду ( ~
) в package.json
например "eslint": "~3.1.0"
чтобы гарантировать результаты ваших сборок.
Стилистические правила заморожены в соответствии с нашей политикой оценки новых правил и изменений правил. Это означает:
Эти люди поддерживают проект и являются ресурсами для помощи.
Люди, которые управляют выпусками, рассматривают запросы функций и регулярно встречаются, чтобы обеспечить правильное обслуживание ESLint.