Плагин Intellij: AirBnB ESLint w/React

Использование Intellij Idea 15.0.2 на Ubuntu 15.10 и попытка настроить ESLint на работу.

Следуйте инструкциям на сайте Jetbrains, но не играйте в кости.

Здесь screencap моих настроек на языках и платформах > javascript > инструменты качества кодa > ESLint. И здесь screencap настроек nodejs/npm в IntelliJ.

И мой файл .eslintrc в корневой директории проекта:

{
  "extends": "airbnb",
  "rules": {
    "comma-dangle": 0
  }
}

Здесь находится snip из /index.js, который не вызывает ошибок или предупреждений в IntelliJ:

var superman = {
    default: { clark: "kent" },
    private: true
};

Здесь вывод, когда я запускаю eslint index.js из терминала:

   4:1   error    Unexpected var, use let or const instead                      no-var
   5:5   error    Expected indentation of 2 space characters but found 4        indent
   5:23  error    Strings must use singlequote                                  quotes
   6:5   error    Expected indentation of 2 space characters but found 4        indent

Примечание. Я считаю, что ESLint работает, так как до того, как я изменил свой .eslintrc на версию AirBNB, я использовал .eslintrc от Github, который ввел ряд ошибок ESLint в IntelliJ (то есть ошибки в .eslintrc, а не мой код).

Как только я исправил эти ошибки, плагин успокоился и не кричал на меня, когда я тестировал его, создавая ошибки.

Ответ 1

Настройки JetBrains (Idea, Webstorm)

Файл > Настройки > Плагины > Обзор репозиториев... > Поиск: eslint > Установить > Перезапустить WebStorm

Файл > Настройки > Языки и фреймворки > JavaScript > Инструменты качества кодa > ESLint

введите описание изображения здесь

После этого он должен работать следующим образом:

введите описание изображения здесь

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

ESLint не поставляется с конфигурацией. Вы должны создать свой собственный или использовать пресет:

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

Затем в вашем .eslintrc

{
  "extends": "airbnb"
}

Вы также можете выборочно отключить/изменить некоторые правила из пресета (0 - отключить правило, 1 - предупреждение, 2 - ошибка):

{
  'extends': 'airbnb',
  'rules': {
    'indent': [2, 'tab', { 'SwitchCase': 1, 'VariableDeclarator': 1 }],
    'react/prop-types': 0,
    'react/jsx-indent-props': [2, 'tab'],
  }
}

Читайте: Отключение правила eslint для определенной строки.

Если вы не хотите использовать конфигурацию airbnb (самый популярный справочник по стилю javascript), вы можете создать свой собственный. Вот инструкция для реакции: Как настроить ESLint для React на редакторе Atom.

Чтобы создать свой собственный пресет, вам нужно создать пакет npm с именем eslint-config-myname, а затем использовать 'extends': 'myname', http://eslint.org/docs/developer-guide/shareable-configs

Вы можете использовать командную строку для проверки работы eslint:

./node_modules/.bin/eslint .

Вы можете исключить некоторые файлы из eslinting (node_modules исключены по умолчанию) в .eslintignore:

bundle.js

Существует также переключатель --fix для eslint.

.editorconfig

Хорошим компаньоном для ESLint является editorconfig. Вот пример, который работает в продуктах JetBrains:

root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true


# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,jsx,html,sass}]
charset = utf-8
indent_style = tab
indent_size = 4
trim_trailing_whitespace = true

# don't use {} for single extension. This won't work: [*.{css}]
[*.css]
indent_style = space
indent_size = 2

У меня также есть репозиторий github, у которого уже установлены эти файлы https://github.com/rofrol/react-starter-kit/

Основываясь на этом https://www.themarketingtechnologist.co/how-to-get-airbnbs-javascript-code-style-working-in-webstorm/

Подробнее здесь https://www.jetbrains.com/webstorm/help/using-javascript-code-quality-tools.html