ESLint-это утилита компоновки JavaScript с открытым исходным кодом. Недавно обновленная последняя версия добавляет новый API предложений, а также свойство IgnorePatterns.
ESLint был первоначально создан Николасом К. Закасом в 2013 г. и в настоящее время является проектом фонда OpenJS. Линтинг кода-это тип статического анализа, используемый для поиска кода, который не соответствует определенным правилам стиля. ESLint был создан для того, чтобы позволить разработчикам создавать свои собственные правила линтинга, поэтому все правила полностью подключаемы. Правила по умолчанию написаны так же, как и любые правила плагина.
Новый API предложений можно использовать для изменения способа работы команды fix. В некоторых случаях исправления не подходят для автоматического применения, например, если исправление потенциально изменяет функциональность или если существует несколько допустимых способов исправления правила в зависимости от цели реализации. API предложений можно использовать для предоставления предложенной альтернативы. API может использоваться другими инструментами, такими как редакторы кода, для предоставления пользователям помощников для ручного применения предложения. Объекты предложения представляют отдельные предложения, которые могут быть применены, с ключевой строкой, описывающей, что будет делать применение предложения.
Этот выпуск также добавляет новое свойство ignorePatterns в конфигурационные файлы (включая общие конфигурации), чтобы управлять файлами, которые ESLint игнорирует. До этого выпуска разработчикам приходилось создавать и использовать файл eslintignore в корневом каталоге проекта.
Также было добавлено несколько новых правил, включая возможность требовать сгруппированных пар доступа; возможность запретить возвращаемое значение в конструкторе (no-constructor-return); и no-dupe-else-if, чтобы запретить повторяющиеся условия в цепочках if-else-if. Другие новые правила включают в себя no-setter-return, запрещающий возвращать значения от сеттеров; и предпочтительный оператор возведения в степень, который можно использовать, чтобы запретить использование Math.pow в пользу оператора**.