Является ли эта конфигурация eslintr c правильной для плагинов «eslint-plugin-реагировать» и «eslint-plugin-реагировать-native»? - PullRequest
0 голосов
/ 09 января 2020

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

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

  • 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"
    }
};

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

...