Как применяются правила из различных ruleset'ов в eslint

113
21 января 2020, 06:40

Пробую различные конфиг-файлы .eslintrc.js в проекте и вот какой вопрос у меня возник.

В секции extends как работает порядок подключения и что будет с правилами, которые конфликтуют друг с другом? Допустим у меня есть не какой-то стандартный набор правил типа

extends: ['plugin:vue/essential', 'airbnb-base'],

а сборная солянка из большого числа пакетов правил взятых с какой-нибудь статьи (вот тут например большая пачка).

Вряд ли же авторы проверяли свои правила на совместимость друг с другом, возможно что будут какие-то противоречащие друг другу правила в разных пакетах. Применится первое правило? Последнее? Оба применятся и сразу будет видно два друг другу противоположных сообщения типа "должны быть одинарные кавычки"/"должны быть двойные кавычки"?

Answer 1

tl;dr: применяется последнее правило.

Согласно документации,

Конфиг-файл может расширять базовые конфигурации с помощью свойства extends, которое может быть:

  • строкой (имя базовой конфигурации)
  • массивом строк: каждая следующая конфигурация наследуется от предыдущей

Свойство rules позволяет изменять или расширять базовую конфигурацию следующими способами:

  • Добавить дополнительные правила (не присутствующие в базовой конфигурации)
  • Изменить строгость (severity) правила, унаследованного от базовой конфигурации (без изменения параметров правила). Например:
    • Базовая конфигурация: "eqeqeq": ["error", "allow-null"]
    • Конфигурация, расширяющая базовую: "eqeqeq": "warn"
    • Результат: "eqeqeq": ["warn", "allow-null"]
  • Переопределить правило из базовой конфигурации. Например:
    • Базовая конфигурация: "quotes": ["error", "single", "avoid-escape"]
    • Конфигурация, расширяющая базовую: "quotes": ["error", "single"]
    • Результат: "quotes": ["error", "single"]
READ ALSO
setAttribute перенос строки

setAttribute перенос строки

Как сделать перенос строки в setAttribute? \r\n не сработали и \n тоже и это тоже  

189
Калькулятор размера на vue.js

Калькулятор размера на vue.js

Хочу сделать калькулятор для расчета размера арматуры на vuejs

131
Рекурсивное создание полей теста

Рекурсивное создание полей теста

Я пытаюсь динамически создать тест по кнопкеДобавил функцию

103
Как в JS создать событие по нажатию на radio button

Как в JS создать событие по нажатию на radio button

Как в js сделать так, чтобы при нажатии на любой input type="radio" переходило на следующий вопрос, то есть чтобы было аналогично нажатию кнопки "Далее"...

126