Гэтсби расширяет правила ESLint, перезаписывает оригинальный ESLint - PullRequest
2 голосов
/ 12 марта 2020

Я следую инструкциям в документации https://www.gatsbyjs.org/docs/eslint/ и хотел бы перезаписать одно из правил, но не повлиять на остальные, я создал файл .eslintrc.js.

Это содержимое файла

module.exports = {
  globals: {
    __PATH_PREFIX__: true,
  },
  extends: `react-app`,
  "rules": {
    'jsx-a11y/no-static-element-interactions': [
      'error',
      {
        handlers: [
          'onClick',
          'onMouseDown',
          'onMouseUp',
          'onKeyPress',
          'onKeyDown',
          'onKeyUp',
        ],
      },
    ],
  }
}

, но остальные правила теперь игнорируются, как будто это не расширение

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Хотя приведенный выше ответ верен, он немного неполон. Дело в том, что eslint можно интегрировать как в сборки, так и в редакторы.

Когда вы начнете использовать пользовательский .eslintrc.js, вы потеряете интеграцию при сборке и выводе в терминале на основе этого правила. Это потому, что встроенный загрузчик eslint-loader отключен, когда вы используете пользовательский файл. Это действительно так сказано на странице документации, но это немного неясно.

Чтобы вернуть это, вам нужно будет интегрировать его в сборку веб-пакета. Самый простой способ - использовать плагин , упомянутый на странице do c: gatsby-plugin-eslint.

Я подал проблему , чтобы упростить пользовательские интеграции.

1 голос
/ 04 апреля 2020

Из документов Gatsby, с которыми вы связаны:

Когда вы включаете пользовательский файл .eslintr c, Gatsby дает вам полный контроль над конфигурацией ESLint. Это означает, что он переопределит встроенный загрузчик eslint-loader, и вам нужно самостоятельно включить все правила. Один из способов сделать это - использовать плагин Community gatsby-eslint-plugin. Это также означает, что стандартная конфигурация ESLint, с которой поставляется Gatsby, будет полностью перезаписана. Если вы все еще хотите воспользоваться этими правилами, вам необходимо скопировать их в локальный файл.

Так что, как только вы создадите файл .eslintrc.js, похоже, вам нужно построить свои правила снизу снова. Перезаписывает, не расширяет.

...