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

Все публикации из этой серии:
Часть 1: Введение
Часть 2: Инициализация и первый файл
Часть 3: Использование синтаксиса ES2015 < br /> Часть 4: Применение руководства по стилю
Часть 5: Настройка сервера Express
Часть 6: Использование модуля Bundler
Часть 7 : Настройка React и лучшие практики
Часть 8: Настройка Redux
Часть 9: Настройка React Router
Часть 10: TDD и настройка Jest

Эта проблема

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

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

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

Вам нужен Руководство по стилю, и точка.

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

ESLint для линтинга кода

ESLint - самый популярный инструмент для линтинга JavaScript, и он имеет плагины для многих популярных редакторов, таких как VSCode, Sublime Text и Atom, чтобы обеспечить линтинг кода в реальном времени.

Давайте начнем настраивать ESLint, добавив пакет в наш проект в качестве зависимости разработки:

$ npm install --save-dev eslint

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

{
  "env": {
    "es6": true,
    "browser": true,
    "node": true
  }
}

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

Что мы здесь сделали, так это то, что мы включили браузер и среды Node.js и включили функции ES6 (ES2015), чтобы линтер не выдавал ошибок или предупреждений, когда мы используем в нашем коде глобальные переменные, специфичные для браузера (такие как document и window). .

Руководство по стилю AirBnB

Если у вас еще нет руководства по стилю, которому можно следовать, то вам обязательно следует принять руководство по стилю AirBnB. Это очень полный набор стандартов кодирования и одно из самых популярных руководств по стилю в Интернете.

Установите пакет из npm как зависимость разработки:

$ npm install --save-dev eslint-config-airbnb

Руководство по стилю AirBnB требует установки других пакетов, поэтому давайте добавим и их:

$ npm install --save-dev eslint-plugin-import
$ npm install --save-dev eslint-plugin-jsx-a11y
$ npm install --save-dev eslint-plugin-react

Теперь вам нужно объявить, что вы будете использовать руководство по стилю в своем файле .eslintrc:

{
  "extends": "airbnb",
  "env": {
    "es6": true,
    "browser": true,
    "node": true
  }
}

Руководство по стилю - это не клятва на крови

Ваша свод законов - это то, чему ваша команда соглашается следовать. Вам не обязательно строго следовать инструкциям AirBnB, вы можете изменить их правила (при условии, что вы согласны с этим со своей командой), указав ключ rules в вашем файле .eslintrc.

{
  ...
  "rules": {
    "react/jsx-filename-extension": 0,
    "react/forbid-prop-types": 0
  },
  ...
}

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

Линтинг нестандартного синтаксиса ES2015

Некоторые функции ES2015, такие как свойства класса, действительно полезны, но они могут не быть частью стандартов (пока), и ESLint выдаст ошибку синтаксического анализа, когда мы их используем. Чтобы обойти это, мы собираемся использовать синтаксический анализатор ESLint, который позволяет линтинг валидного кода Babel.

Установите пакет как зависимость разработки:

$ npm install --save-dev babel-eslint

Затем используйте его в файле .eslintrc:

{
  "parser": "babel-eslint",
  ...
}

Добавление npm-скрипта для линтинга

Если вы сейчас откроете файл index.js, вы увидите, что ESLint уже обнаружил проблемы в нашем коде.

Функции линтинга в реальном времени, которые предлагает плагин редактора кода, очень важны, но нам по-прежнему нужен способ линтинга кода без использования плагина. Давайте создадим сценарий «lint», изменив файл package.json:

{
  ...
  "scripts": {
    "start": "babel-node index.js",
    "lint": "eslint . --ext .js,.jsx",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  ...
}

Теперь, если вы запустите следующую команду в терминале, вы получите те же ошибки и предупреждения:

$ npm run lint

Принудительное использование линтинга перед фиксацией

Если вы используете Git (а вы должны это делать), вы можете принудительно выполнить линтинг кода перед каждой фиксацией с помощью установщика хуков до фиксации. Это позволяет вам запускать определенные сценарии перед тем, как делать коммиты. Мы собираемся использовать его для запуска npm-скрипта lint, чтобы гарантировать, что несогласованный код не попадет в базу кода.

Добавьте пакет как зависимость для разработки:

$ npm install --save-dev pre-commit

Единственное, что вам нужно сделать, это добавить массив pre-commit в ваш файл package.json, который указывает, какие скрипты вы хотите запускать и в каком порядке. Пока мы хотим запустить только один скрипт, поэтому давайте добавим его:

{
  ...
  "pre-commit": [
    "lint"
  ]
  ...
}

Помните, что у нас проблемы с файлом index.js? Если вы попытаетесь зафиксировать код сейчас, фиксация не удастся, пока все эти проблемы не будут устранены.

ESLint сообщал, что в строке 3 отсутствует конечная запятая, требуется новая строка в конце файла, и было предупреждение об использовании console.log в коде.

После исправления всех ошибок линтинга вы сможете успешно зафиксировать свои изменения.

Заключение

Написание последовательного и чистого кода очень важно, и этого можно достичь, следуя руководству по стилю. Руководство по стилю AirBnB - одно из самых популярных руководств по стилю в Интернете.

Была ли эта статья полезной? Пожалуйста, нажмите кнопку Хлопать ниже или подписывайтесь на меня, чтобы узнать больше.

Спасибо за прочтение! Если у вас есть отзывы, оставьте комментарий ниже.

Перейдите к Части 5: Настройка Экспресс-сервера