Почему линтинг? 🤔

Javascript — отличный язык, однако, поскольку он гибкий, есть вероятность написать плохой код и закопаться в яму. Javascript – это динамический язык с нечеткой типизацией, а это означает, что многое может пойти не так, поэтому ESLint очень полезен, поскольку он анализирует ваш код, не выполняя его.< br /> ESLint – это инструмент для проверки качества кода, задачей которого является сканирование файлов вашего проекта и выявление потенциальных проблем. Проблемы могут быть некритическими, например, форматирование, или критическими, например, попытка сослаться на несуществующую функцию.
Теперь ESLint не одинок в этом пространстве, есть и другие инструменты, такие как JSHint. и JSLint. Все эти инструменты пытаются решить одну и ту же проблему, но в последние годы сообщество начало двигаться в сторону ESLint. Это связано с тем, что ESLint лучше справляется с последними функциями ES6 и ES7, в то время как другие инструменты не имеют такой хорошей интеграции, поэтому сообщество начало отходить от них.

Установка и настройка🎯

Есть два способа установить ESLint; глобально или в вашем конкретном проекте. Легче сделать это глобально, но на официальной веб-странице ESLint рекомендуют не устанавливать его глобально, а устанавливать локально в каждом проекте, и основная причина этого в том, что это упрощает сотрудничество с другими разработчиками на отдельные проекты и имеют разные правила (правила — это соглашения о стиле, которые вы применяете к коду). ESLint — это пакет, который мы устанавливаем с помощью NPM.

В этом руководстве я использую свой существующий проект repository в качестве образца репозитория. В ветке master будет исходный код, и я буду использовать ветку linted для установки и проверки кода с помощью ESLint. Я предполагаю, что в вашей системе уже установлены git и node. Я клонировал репозиторий в своей системе и переключил ветку на linted.

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

npm install eslint --save-dev 

После завершения установки откройте файл package.json, и вы увидите обновленную запись ESLint в разделе «devDependencies».

Теперь начинается интересная часть, которая заключается в настройке ESLint, прежде чем мы сможем начать использовать его для поиска и исправления ошибок линтинга. Мы собираемся сделать это, настроив файл конфигурации. Процесс будет проходить через ряд вопросов или настроек, и в конце он создаст файл конфигурации с именем .eslintrc.{js,yml,json}.

Поскольку мы уже разместили ESLint в нашем реестре, мы будем использовать npx (рекомендуется тем, кто использует NPM версии 5.2.0 или выше), либо вы можете использовать ./node_modules/.bin/eslint
Чтобы инициализировать конфигурацию, запустите:

npx eslint --init
Or
./node_modules/.bin/eslint --init

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

Я использовал модули javascript в своем проекте, поэтому выберу первый вариант. (Если в вашем проекте установлен Babel, вам обязательно нужно выбрать этот вариант. Если вы работаете над таким проектом, как React, Vue, Angular и т. д., все они используют Babel, поэтому вам нужно выбрать этот вариант.)

Я не использовал ни один из этих фреймворков в своем проекте, поэтому я не выберу ни один из них.

Я не использовал TypeScript в своем проекте, поэтому я выберу Нет!

Мой проект основан на узлах, поэтому я выберу второй вариант.

Теперь мы увидим параметры для определения стиля кода нашего проекта. Я выберу первый вариант, в котором будут перечислены стили, созданные такими популярными компаниями, как Airbnb и Google. Выбор второго варианта приведет вас к ряду вопросов, которые определят ваши собственные определения стиля. Или вы можете выбрать последний вариант, чтобы проверить файл javascript из другого проекта и применить те же правила в своем проекте.

Я выберу руководство по стилю Airbnb, которое является одним из популярных руководств по стилю.

Последним шагом является выбор формата файла .eslintrc. Я выбрал формат javascript.

После выбора нужного формата файла мастер спросит, хотите ли вы установить зависимость Airbnb с помощью NPM или нет? Просто нажмите «Да», после чего ESlint запустится, установит все необходимые зависимости и сгенерирует файл конфигурации .eslintrc.js.

Мы закончили установку ESLint и настройку файла конфигурации.

Запуск ESLint

а. Проверка синтаксиса и поиск проблем

Вы можете проверить синтаксис и ошибки либо в одном файле, либо во всех файлах в каталоге.
Чтобы проверить один файл, просто запустите:

npx eslint filename.js 

И чтобы проверить несколько файлов в каталоге, вам нужно указать шаблон, например public/**/*.js, а затем ESLint будет искать ошибки во всех файлах, которые находятся внутри общедоступного каталога, а также в подкаталогах, команда будет :

npx eslint public/**/*.js

На приведенном ниже снимке экрана показан список ошибок и предупреждений линтинга, выдаваемых ESLint, когда я запускаю его в одном файле, используя:

npx eslint server.js

б. Устранение проблем и соблюдение стиля

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

Давайте запустим команду, чтобы исправить ошибки и применить руководство по стилю Airbnb с помощью ESLint:

npx eslint server.js --fix

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

Итак, чтобы исправить это предупреждение, нам придется изменить правило в файле конфигурации ESLint.eslintrc.js. Я добавлю новое правило 'no-console': 0, в свой файл конфигурации ESlint, которое будет разрешать все операторы консоли и не будет выдавать предупреждение. Добавление этого правила в наш файл конфигурации позволит использовать консольные операторы по всему проекту и не вызовет никаких ошибок. Если вы явно хотите разрешить один оператор консоли, вы можете добавить комментарий:
в текущую строку:

console.log(someThing); /* eslint-disable-line no-console */

… или в предыдущей строке:

/* eslint-disable-next-line no-console */
console.log(someThing);

После добавления этого правила в наш файл конфигурации мы снова запустим ESLint для проверки предупреждений/ошибок и вуаля!! Никаких ошибок и предупреждений!🤩

Код выглядит намного чище, чем до использования ESLint.

Настройка правил для ESLINT в вашем проекте

Определение правил для ESLINT в вашем проекте, чтобы сообщить ESLint, какие правила вы хотите добавить или удалить. вы можете изменить/установить свои правила в разделе правил в файле конфигурации. Вы можете определить как можно больше правил, вы можете прочитать больше о правилах ESLINT в их официальной документации ESLINT Rules Documentation.

Бонус: вы можете связать ESLint с вашим компилятором проекта javascript:

  • Перейдите к вашему файлу package.json, в сегмент скрипта в вашем файле добавьте следующее
script:{
    "lint":"eslint"
}

Примечание. "ворс" – это обычное слово, вы можете использовать любое слово, которое вам удобно

  • В корневом проекте вы можете запустить скрипт linting с помощью
npm run lint

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