Правильна ли эта конфигурация eslintrc для плагинов "eslint-plugin-react" и "eslint-plugin-react-native"?

Я начинаю новый проект, и я хотел бы обеспечить соблюдение стиля кода для всех моих товарищей по команде. Однако мне сложно понять точный способ включения и настройки определенных правил в конфигурации eslintrc.

В проекте используются:

  • Expo (SDK36, React 16.9, React Native 0.61)
  • Узел 13.6
  • JSX
  • ECMAScript 2017+ (по крайней мере ES6, но мы можем использовать дополнительные спецификации)

Кодовый стиль обеспечивается через eslint и плагины eslint-plugin-react а также eslint-plugin-react-native. Плагины и правила, которые они предоставляют, можно найти по следующим ссылкам:

Я хочу использовать рекомендуемые правила eslint, а рекомендуемые из eslint-plugin-react, но не изeslint-plugin-react-native (для последнего меня интересует только no-unused-styles правило).

И следующее .eslintrc.js файл конфигурации, который у меня есть:

module.exports = {
    "env": {
        "es6": true,
        "node": true
    },
    "extends": [
        "eslint:recommended",
        "plugin:react/recommended"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "plugins": [
        "react",
        "react-native"
    ],
    "rules": {
        "indent": [
            "error",
            "tab"
        ],
        "linebreak-style": [
            "error",
            "unix"
        ],
        "quotes": [
            "error",
            "double"
        ],
        "semi": [
            "error",
            "always"
        ],
        "react/no-children-prop": "error",
        "react/no-deprecated": "error",
        "react/no-direct-mutation-state": "error",
        "react/no-typos": "error",
        "react/no-string-refs": "error",
        "react/no-this-in-sfc": "error",
        "react/no-unsafe": "error",
        "react/no-unused-state": "warn",
        "react/prop-types": "none",
        "react/react-in-jsx-scope": "error",
        "react/self-closing-comp": [
            "warn",
            { "component": true, "html": true }
        ],
        "react/state-in-constructor": [
            "error",
            "always"
        ],
        "react/jsx-no-bind": "error",
        "react/jsx-no-undef": [
            "error",
            { "allowGlobals": false }
        ],
        "react/jsx-no-useless-fragment": "error",
        "react/jsx-one-expression-per-line": [
            "error",
            { "allow": "single-child" }
        ],
        "react/jsx-fragments": [
            "error",
            "syntax"
        ],
        "react/jsx-pascal-case": [
            "error",
            { allowAllCaps: false }
        ],
        "react-native/no-unused-styles": "warn"
    }
};

Может ли кто-нибудь помочь мне с проверкой этой конфигурации?

0 ответов

Другие вопросы по тегам