eslint-config-webpractik
v0.1.6
Published
Eslint config for webpracrik JavaScript styleguides
Downloads
5
Readme
npm i eslint-config-webpractik --save-dev
Далее нужно создать в этой же директории файл с именем .eslintrc и добавить в гит. Это можно сделать командой:
echo '{"extends": ["webpractik"]}' >> .eslintrc && git add .eslintrc
Если нужно дописать свои правила, следует добавить секцию rules ниже. Например:
"rules": {
"no-mixed-operators": "error"
}
Если вы используете свои глобальные переменные, вы можете добавить в .eslintrc
"globals": {
"globalVar": true
}
Полный список правил и документацию по настройке можно найти на сайте https://eslint.org/
Eslint по-умолчанию уже установлен в PhpStorm, остается лишь его включить и настроить.
Заходим в:
Settings -> Language & Frameworks -> JavaSctipt -> Code Quality Tools -> Eslint
- Ставим настройку Manual ESLint configuration
- Выбираем Node Interpreter и ESLint package (если до этого все сделали правильно, то Storm подскажет варианты)
- В Configuration file указываем путь к файлу .eslint
В eslint есть возможность работать с консольной утилитой. Установить ее можно командой:
npm i -g eslint
В помощью этой утилиты возможно исправление code-style во многих файлах разом. Для этого используется команда:
eslint --fix **/*.js
Не используйте эту команду за пределами папки local, иначе он пойдет по всем js-файлам битрикса.
Дополнительные правила, которые подстраивают под наш код-стиль, плюс те, которые показались полезными для внедрения:
indent: 4 - Отступ выставлен в 4 пробела.Подробнее: https://eslint.org/docs/rules/indent#enforce-consistent-indentation-indent no-var: off - выключен запрет на var (сейчас у нас много легаси на es5). Подробнее: https://eslint.org/docs/rules/no-var#require-let-or-const-instead-of-var-no-var no-duplicate-imports - держим код в чистоте, не дублируем импорты. Подробнее: https://eslint.org/docs/rules/no-duplicate-imports#disallow-duplicate-imports-no-duplicate-imports max-len - допускается 120 символов в строке, размер таба - 4 пробела. Подробнее: https://eslint.org/docs/rules/max-len#enforce-a-maximum-line-length-max-len lines-between-class-membersЫ - улучшаем читаемость, ставим отступ между членами класса. Подробнее: https://eslint.org/docs/rules/lines-between-class-members#require-or-disallow-an-empty-line-between-class-members-lines-between-class-members yoda - пишем условия так, чтобы не было затруднений в чтении (без 24 == a). Подробнее: https://eslint.org/docs/rules/yoda#require-or-disallow-yoda-conditions-yoda comma-dangle - не оставляем "висящих" запятых в аргументах функций и при объявлении объектов. Подробнее: https://eslint.org/docs/rules/comma-dangle#require-or-disallow-trailing-commas-comma-dangle block-scoped-var - проверка на то не выходит ли var за пределы блока. Подробнее: https://eslint.org/docs/rules/block-scoped-var#treat-var-as-block-scoped-block-scoped-var no-empty-pattern - не деструктурируем по типу var {} = foo; Подробнее: https://eslint.org/docs/rules/no-empty-pattern no-inner-declarations - декларируем функции и переменные на вернем уровне. Подробнее: https://eslint.org/docs/rules/no-inner-declarations#disallow-variable-or-function-declarations-in-nested-blocks--no-inner-declarations use-isnan - используем isNaN, когда проверяем является ли что-либо числом. Подробнее: https://eslint.org/docs/rules/use-isnan#require-calls-to-isnan-when-checking-for-nan-use-isnan no-dupe-class-members - следим за дублированием в классах. Подробнее: https://eslint.org/docs/rules/no-dupe-class-members#disallow-duplicate-name-in-class-members-no-dupe-class-members no-unused-vars - держим код в чистоте, удаляем неиспользуемые переменные. Подробнее: https://eslint.org/docs/rules/no-unused-vars#disallow-unused-variables-no-unused-vars no-magic-numbers - избавляемся от литералов, выносим в константу. Исключение: индексы массива и числа -1, 0, 1, 2. Подробнее: https://eslint.org/docs/rules/no-magic-numbers#disallow-magic-numbers-no-magic-numbers no-use-before-define - читаемость лучше, если объявления переменной происходит до ее использования. Подробнее: https://eslint.org/docs/rules/no-use-before-define#disallow-early-use-no-use-before-define padded-blocks - выключена проверка на отступы в блоках. Подробнее: https://eslint.org/docs/rules/padded-blocks#require-or-disallow-padding-within-blocks-padded-blocks arrow-parens - Разрешаем объявлять стрелочные функции с одним аргументом без скобок. Подробнее: https://eslint.org/docs/rules/arrow-parens#require-parens-in-arrow-function-arguments-arrow-parens no-trailing-spaces - Выключена ошибка "лишних пробелов". Подробнее: https://eslint.org/docs/rules/no-trailing-spaces#disallow-trailing-whitespace-at-the-end-of-lines-no-trailing-spaces В глобальных переменных обозначены:
- Переменные браузера
- Jquery
- BX (на проектах без битрикса можно отключать)