Сравнение инструментов JavaScript Linting

Линтинг - это процесс запуска программы, которая будет анализировать код на предмет потенциальных ошибок или выявлять неправильные методы кодирования. Здесь я представляю краткое сравнение 3 наиболее широко используемых библиотек линтинга JavaScript специально при использовании с React.

JS Lint

JS Lint - один из старейших инструментов для линтинга JavaScript.

Плюсы

  • Он поставляется предварительно настроенным и готовым к работе

Минусы

  • Это не настраивается пользователем
  • Он не расширяемый - мы не можем добавлять собственные правила
  • Это не очень хорошая документация
  • Трудно определить правило, которое не работает
  • Нет поддержки ES6 или React

Подсказка JS

JS Hint является преемником JS Lint.

Плюсы

  • У него очень хорошая поддержка сообщества
  • Настраиваемый - мы можем легко настроить, включить / отключить правила
  • Имеет поддержку многих библиотек из коробки, таких как jQuery, QUnit, NodeJS, Mocha.
  • Поддерживает базовый ES6

Минусы

  • Трудно понять, какое правило не работает
  • Не расширяемый - мы не можем создавать собственные правила
  • Не поддерживает React

ES Lint

ESLint полностью подключаемый, каждое правило является подключаемым модулем, и мы можем добавлять дополнительные правила во время выполнения. Это самая последняя из трех библиотек. Он разработан так, чтобы быть легко расширяемым, поставляется с большим количеством настраиваемых правил, и вы можете легко установить дополнительные правила в виде плагинов. Он дает краткий вывод, а также включает имя правила по умолчанию, поэтому вы всегда знаете, какие правила вызывают сообщения об ошибках.

Плюсы

  • Полностью настраиваемый - мы можем настроить / включить / отключить любое правило
  • Расширяемость - мы можем создавать свои собственные правила
  • Имеет богатый набор существующих правил в соответствии с передовой практикой
  • Полностью поддерживает ES6 и React
  • Легко понять вывод с названиями правил
  • Правила очень хорошо документированы с примерами
  • Настраивается с помощью файла конфигурации (json / yaml / js) - легко делиться конфигурацией между членами команды
  • Простая интеграция с IDE

Минусы

  • Для начала требуется первоначальная конфигурация
  • Немного медленно

Заключение

Принимая во внимание вышеуказанные факторы, ESLint кажется лучшим вариантом при работе с ES6 и React.

Я хотел бы услышать ваши комментарии, предложения, вопросы или ваш опыт работы с любым из инструментов линтинга JavaScript.