Сравнение инструментов 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.