Hi!

Вероятно, у вас были ситуации, когда вы коммитили в репозиторий какие-то вещи, которые ни один здравомыслящий разработчик никогда не должен коммитить. По последствиям ломаются билды обалденного производства или плачущий менеджмент бегает.

Большинство проблем можно решить для среды Js с помощью ESLint, и здесь я сделаю краткий обзор функций ESLint.

Что такое ESLint?

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

Как бы я его использовал?

Прежде всего вам необходимо установить пакет eslint npm:

Затем вам нужно создать файл .eslintrc или добавить поле eslintConfig в файл package.json вашего проекта. Это можно сделать с помощью команды:

Конфигурация ESLint

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

Лично я обычно использую некоторые предопределенные подмножества правил, которые могут указывать на очевидные ошибки или какой-то дурно пахнущий код . С другой стороны, если вы укажете слишком много правил в своей конфигурации, вы можете утонуть в предупреждениях и ошибках, возникающих при малейшем изменении кода.

Итак, давайте взглянем на базовую конфигурацию ESLint:

{ 
  "ecmaFeatures": { 
     // here you can enable or disable some features of ES6 
    "blockBindings": true,
    "forOf": true,
    "jsx": true 
  },
  "rules": { // here you specify the rules
   "semi": 2 // number  
  } 
}

Цифры в ключе имени правила имеют следующее значение:

  • 0 — отключить правило
  • 1 — включить правило как предупреждение (не влияет на код выхода)
  • 2 — включить правило как ошибку (код выхода 1 при срабатывании)

Таким образом, вы можете оставить некоторые вещи просто как предупреждения и исправить их, когда у вас будет время.

Кроме того, вы можете просто использовать рекомендуемые правила, просто сказав:

"extends": "eslint:recommended"

Запустите eslint в своем коде

Запуск довольно прост:

eslint yourJsFiles.js

и тогда вы получите результаты проверки по настроенным правилам.

Я хочу, чтобы это происходило при каждом коммите!

Чтобы это произошло, вам нужно добавить перехватчики pre-commit или pre-push. Я использую Хаски для своих проектов, вы можете добавить его, сказав:

npm install husky --save-dev

а затем вам нужно добавить еще несколько строк в файл package.json:

{ 
    "scripts": {
        "lint": "eslint yourJsFiles.js",
        "precommit": "npm run test && npm run lint",
        "prepush": "npm run test && npm run lint", 
        "...": "..." 
    } 
}

И это сделано! Ага! Перед каждым коммитом или пушем ваш код будет проверяться на хороший стиль; кроме того, вы можете запустить несколько тестов, чтобы сделать ваше приложение еще более качественным.

Есть вопрос?

Не стесняйтесь спрашивать меня в Twitter или Github.

Первоначально опубликовано на www.devartem.info.