Я начинаю новый проект и хотел бы установить стиль кода для всех моих товарищей по команде. Однако мне трудно понять точный способ включения и настройки определенных правил в конфигурации 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"
}
};
Может кто-нибудь помочь мне с проверкой этой конфигурации?