В основном это настраивается как личная шпаргалка / напоминание, потому что поиск в Интернете четких инструкций - это то, что нужно сделать только один раз.
Это настраивается для проекта React, если это может помочь кому-то еще, это здорово.
Шаг 1. Настройка файла package.json
Судя по чтению в Интернете, люди рекомендовали устанавливать расширения linting локально, а модуль eslint
— на вашем компьютере.
Логика заключалась в том, что можно использовать разные расширения линтинга в зависимости от проекта, над которым они работают, но модуль eslint
всегда будет одним и тем же.
В итоге я решил установить все как dev-зависимость, потому что мой локальный eslint
искал свои зависимости конфигурации локально, а не в проекте. Может быть, я делал что-то еще не так, и это было лишним, но это решило мою проблему… Я считаю это победой.
{ ... “devDependencies”: { ... “babel-eslint”: “^7.1.1”, “eslint”: “^3.11.0”, “eslint-config-airbnb”: “^13.0.0”, “eslint-plugin-import”: “^2.2.0”, “eslint-plugin-jsx-a11y”: “^2.2.3”, “eslint-plugin-react”: “^6.7.1”, }, ... “scripts”: { ... “lint”: “eslint src”, } }
Это соответствующая информация из моего файла package.json
. Основной сбой, на исправление которого потребовалась целая вечность, заключался в запуске esling-plugin-jsx0a11y
с версией ^3
.
Копирование этого снайпера должно решить все.
Шаг 2. Настройка файла .eslintrc
Когда дело доходит до файла .eslintrc
, я не уверен в необходимости ключа parser
, однако, поскольку мой код работает с ним, я оставлю его, чтобы не рисковать поломкой.
{ "parser": "babel-eslint", "env": { "browser": true, "node": true, "mocha": true }, "extends": "airbnb", "plugins": [ "react", "jsx-a11y", "import" ] }
Шаг 3: Запуск скрипта
Теперь все готово, последняя часть — ввести команду thenpm run lint -s
. Флаг -s
нужен для того, чтобы консоль не отображала гигантский красный блог ошибок каждый раз, когда линтер предупреждает вас о чем-то.
Я немного повозился с добавлением --watch
в линтер, чтобы понять, что, поскольку возвышенное выделяло для меня «опечатки» внутри редактора, этого было достаточно, и я просто запускал скрипт перед каждой фиксацией в системе управления версиями.
Все сделано.