eslint-config-imweb
Version:
IMWeb团队eslint配置规则
1,167 lines (1,154 loc) • 77 kB
Markdown
*本规范基于 [Airbnb](https://github.com/airbnb/javascript#table-of-contents) 和 [Tencent JavaScript](https://git.code.oa.com/standards/javascript) 编码规范编写。主要用于IMWEB团队内部项目。*
## 接入指南
项目依赖要求,确保eslint版本大于下面版本:
```shell script
"peerDependencies": {
"babel-eslint": ">= 7.2.3",
"eslint": ">= ^6.8.0"
}
```
```shell script
tnpm install eslint @tencent/eslint-config-imweb --save-dev
```
.eslintrc.js:
```js
module.exports = {
extends: ['@tencent/eslint-config-imweb'],
}
```
若项目中使用了typescript,则需要:
1.安装目前最能稳定使用的开发环境依赖:
手动引入:
```js
"devDependencies" : {
"@typescript-eslint/parser": "^3.9.1",
"@typescript-eslint/eslint-plugin": "^3.9.1",
}
```
或命令行安装:
```shell script
tnpm install @typescript-eslint/eslint-plugin@3.9.1 @typescript-eslint/parser@3.9.1 --save-dev
```
2.额外引入ts规则
.eslintrc.js:
```js
module.exports = {
extends: [
'@tencent/eslint-config-imweb',
'@tencent/eslint-config-imweb/ts',
],
}
```
Tencent Javascript 规范提供了一套[降级方案](https://git.code.oa.com/standards/javascript/blob/master/ts-legacy.js)以兼容老项目迁移,若老项目改动过大,可考虑使用。
.eslintrc.js:
```js
module.exports = {
extends: [
'@tencent/eslint-config-imweb',
'@tencent/eslint-config-imweb/ts',
'@tencent/eslint-config-tencent/ts-legacy',
],
}
```
## 关于 Prettier
*由于目前公司还没有统一的 Prettier 标准配置,团队内的代码风格也没有得出一份最佳实践,所以目前只给出 Prettier 的推荐配置,并未集成在代码中。*
安装相关依赖:
```shell script
tnpm i prettier eslint-config-prettier eslint-plugin-prettier -D
```
.eslintrc.js:
```js
module.exports = {
extends: [
'@tencent/eslint-config-imweb',
'@tencent/eslint-config-imweb/ts',
'prettier',
'prettier/@typescript-eslint',
'prettier/react',
'plugin:prettier/recommended',
],
};
```
.prettierrc:
```json
{
"singleQuote": true,
"jsxBracketSameLine": false,
"trailingComma": "all",
"printWidth": 120
}
```
## 规则详情
Rule Name:[@typescript-eslint/camelcase](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/camelcase.md)
```
["off"]
```
Rule Name:[@typescript-eslint/ban-types](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/ban-types.md)
```
["off"]
```
Rule Name:[@typescript-eslint/consistent-type-assertions](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-assertions.md)
```
["off",{"assertionStyle":"as","objectLiteralTypeAssertions":"never"}]
```
Rule Name:[@typescript-eslint/explicit-function-return-type](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-function-return-type.md)
```
["off"]
```
Rule Name:[@typescript-eslint/explicit-member-accessibility](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md)
```
["off"]
```
Rule Name:[@typescript-eslint/explicit-module-boundary-types](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/explicit-module-boundary-types.md)
```
["off"]
```
Rule Name:[@typescript-eslint/member-ordering](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/member-ordering.md)
```
["off",{"default":["public-static-field","protected-static-field","private-static-field","static-field","public-static-method","protected-static-method","private-static-method","static-method","public-instance-field","protected-instance-field","private-instance-field","public-field","protected-field","private-field","instance-field","field","constructor","public-instance-method","protected-instance-method","private-instance-method","public-method","protected-method","private-method","instance-method","method"]}]
```
Rule Name:[@typescript-eslint/no-use-before-define](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-use-before-define.md)
```
["error",{"enums":false,"functions":false}]
```
Rule Name:[@typescript-eslint/no-var-requires](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-var-requires.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/no-require-imports](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-require-imports.md)
```
["warn"]
```
Rule Name:[no-dupe-class-members](http://eslint.org/docs/rules/no-dupe-class-members)
```
["off"]
```
Rule Name:[no-empty-function](http://eslint.org/docs/rules/no-empty-function)
```
["off",{"allow":["arrowFunctions","functions","methods"]}]
```
Rule Name:[no-invalid-this](http://eslint.org/docs/rules/no-invalid-this)
```
["off"]
```
Rule Name:[no-magic-numbers](http://eslint.org/docs/rules/no-magic-numbers)
```
["off",{"ignore":[],"ignoreArrayIndexes":true,"enforceConst":true,"detectObjects":false}]
```
Rule Name:[no-unused-vars](http://eslint.org/docs/rules/no-unused-vars)
```
["off",{"vars":"all","args":"after-used","ignoreRestSiblings":true}]
```
Rule Name:[react/sort-comp](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/sort-comp.md)
```
["off",{"order":["static-variables","static-methods","instance-variables","lifecycle","/^on.+$/","getters","setters","/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/","instance-methods","everything-else","rendering"],"groups":{"lifecycle":["displayName","propTypes","contextTypes","childContextTypes","mixins","statics","defaultProps","constructor","getDefaultProps","getInitialState","state","getChildContext","getDerivedStateFromProps","componentWillMount","UNSAFE_componentWillMount","componentDidMount","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","getSnapshotBeforeUpdate","componentDidUpdate","componentDidCatch","componentWillUnmount"],"rendering":["/^render.+$/","render"]}}]
```
Rule Name:[new-cap](http://eslint.org/docs/rules/new-cap)
```
["off",{"properties":false,"newIsCap":true,"capIsNew":true}]
```
Rule Name:[func-call-spacing](http://eslint.org/docs/rules/func-call-spacing)
```
["off","never"]
```
Rule Name:[@typescript-eslint/adjacent-overload-signatures](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/adjacent-overload-signatures.md)
```
["error"]
```
Rule Name:[@typescript-eslint/class-literal-property-style](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/class-literal-property-style.md)
```
["error","fields"]
```
Rule Name:[@typescript-eslint/consistent-type-definitions](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/consistent-type-definitions.md)
```
["off"]
```
Rule Name:[@typescript-eslint/func-call-spacing](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/func-call-spacing.md)
```
["error","never"]
```
Rule Name:[@typescript-eslint/method-signature-style](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/method-signature-style.md)
```
["off"]
```
Rule Name:[@typescript-eslint/no-empty-interface](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-empty-interface.md)
```
["error"]
```
Rule Name:[@typescript-eslint/no-inferrable-types](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-inferrable-types.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/no-namespace](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md)
```
["error",{"allowDeclarations":true,"allowDefinitionFiles":true}]
```
Rule Name:[@typescript-eslint/no-non-null-asserted-optional-chain](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md)
```
["error"]
```
Rule Name:[@typescript-eslint/no-parameter-properties](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-parameter-properties.md)
```
["off"]
```
Rule Name:[@typescript-eslint/no-this-alias](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-this-alias.md)
```
["error",{"allowDestructuring":true}]
```
Rule Name:[@typescript-eslint/no-unused-expressions](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-expressions.md)
```
["error",{"allowShortCircuit":true,"allowTernary":true,"allowTaggedTemplates":true}]
```
Rule Name:[@typescript-eslint/no-useless-constructor](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-useless-constructor.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/prefer-for-of](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-for-of.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/prefer-function-type](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-function-type.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/prefer-namespace-keyword](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-namespace-keyword.md)
```
["error"]
```
Rule Name:[@typescript-eslint/prefer-optional-chain](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-optional-chain.md)
```
["error"]
```
Rule Name:[@typescript-eslint/triple-slash-reference](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/triple-slash-reference.md)
```
["error",{"path":"never","types":"always","lib":"always"}]
```
Rule Name:[@typescript-eslint/type-annotation-spacing](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/type-annotation-spacing.md)
```
["error"]
```
Rule Name:[@typescript-eslint/typedef](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/typedef.md)
```
["error",{"arrayDestructuring":false,"arrowParameter":false,"memberVariableDeclaration":false,"objectDestructuring":false,"parameter":false,"propertyDeclaration":true,"variableDeclaration":false}]
```
Rule Name:[@typescript-eslint/unified-signatures](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/unified-signatures.md)
```
["error"]
```
Rule Name:[@typescript-eslint/ban-ts-comment](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/ban-ts-comment.md)
```
["error"]
```
Rule Name:[no-array-constructor](http://eslint.org/docs/rules/no-array-constructor)
```
["off"]
```
Rule Name:[@typescript-eslint/no-array-constructor](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-array-constructor.md)
```
["error"]
```
Rule Name:[@typescript-eslint/no-empty-function](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-empty-function.md)
```
["error"]
```
Rule Name:[@typescript-eslint/no-explicit-any](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-explicit-any.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/no-extra-non-null-assertion](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-non-null-assertion.md)
```
["error"]
```
Rule Name:[no-extra-semi](http://eslint.org/docs/rules/no-extra-semi)
```
["off"]
```
Rule Name:[@typescript-eslint/no-extra-semi](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-semi.md)
```
["error"]
```
Rule Name:[@typescript-eslint/no-misused-new](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-misused-new.md)
```
["error"]
```
Rule Name:[@typescript-eslint/no-non-null-assertion](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-non-null-assertion.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/no-unused-vars](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-unused-vars.md)
```
["warn"]
```
Rule Name:[@typescript-eslint/prefer-as-const](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/prefer-as-const.md)
```
["error"]
```
Rule Name:[array-callback-return](http://eslint.org/docs/rules/array-callback-return)
```
["warn",{"allowImplicit":true}]
```
Rule Name:[arrow-body-style](http://eslint.org/docs/rules/arrow-body-style)
```
["off","as-needed"]
```
Rule Name:[arrow-parens](http://eslint.org/docs/rules/arrow-parens)
```
["off","as-needed",{"requireForBlockBody":true}]
```
Rule Name:[arrow-spacing](http://eslint.org/docs/rules/arrow-spacing)
```
["error",{"before":true,"after":true}]
```
Rule Name:[brace-style](http://eslint.org/docs/rules/brace-style)
```
["error","1tbs",{"allowSingleLine":true}]
```
Rule Name:[camelcase](http://eslint.org/docs/rules/camelcase)
```
["error",{"properties":"never","ignoreDestructuring":true,"ignoreImports":true,"allow":["^UNSAFE_"]}]
```
Rule Name:[class-methods-use-this](http://eslint.org/docs/rules/class-methods-use-this)
```
["off",{"exceptMethods":["render","getInitialState","getDefaultProps","getChildContext","componentWillMount","UNSAFE_componentWillMount","componentDidMount","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","shouldComponentUpdate","componentWillUpdate","UNSAFE_componentWillUpdate","componentDidUpdate","componentWillUnmount","componentDidCatch","getSnapshotBeforeUpdate"]}]
```
Rule Name:[consistent-return](http://eslint.org/docs/rules/consistent-return)
```
["off"]
```
Rule Name:[comma-dangle](http://eslint.org/docs/rules/comma-dangle)
```
["error",{"arrays":"always-multiline","objects":"always-multiline","imports":"always-multiline","exports":"always-multiline","functions":"always-multiline"}]
```
Rule Name:[computed-property-spacing](http://eslint.org/docs/rules/computed-property-spacing)
```
["error","never"]
```
Rule Name:[dot-notation](http://eslint.org/docs/rules/dot-notation)
```
["error",{"allowKeywords":true,"allowPattern":""}]
```
Rule Name:[eqeqeq](http://eslint.org/docs/rules/eqeqeq)
```
["error","always",{"null":"ignore"}]
```
Rule Name:[func-names](http://eslint.org/docs/rules/func-names)
```
["warn","as-needed"]
```
Rule Name:[func-style](http://eslint.org/docs/rules/func-style)
```
["off","expression"]
```
Rule Name:[indent](http://eslint.org/docs/rules/indent)
```
["error",2,{"SwitchCase":1,"VariableDeclarator":1,"outerIIFEBody":1,"FunctionDeclaration":{"parameters":1,"body":1},"FunctionExpression":{"parameters":1,"body":1},"CallExpression":{"arguments":1},"ArrayExpression":1,"ObjectExpression":1,"ImportDeclaration":1,"flatTernaryExpressions":false,"ignoredNodes":["TSXElement","JSXElement","JSXElement > *","JSXAttribute","JSXIdentifier","JSXNamespacedName","JSXMemberExpression","JSXSpreadAttribute","JSXExpressionContainer","JSXOpeningElement","JSXClosingElement","JSXFragment","JSXOpeningFragment","JSXClosingFragment","JSXText","JSXEmptyExpression","JSXSpreadChild"],"ignoreComments":false}]
```
Rule Name:[max-len](http://eslint.org/docs/rules/max-len)
```
["error",{"code":120,"ignoreStrings":true,"ignoreUrls":true,"ignoreRegExpLiterals":true,"ignoreTemplateLiterals":true,"ignoreComments":true}]
```
Rule Name:[no-await-in-loop](http://eslint.org/docs/rules/no-await-in-loop)
```
["off"]
```
Rule Name:[no-async-promise-executor](http://eslint.org/docs/rules/no-async-promise-executor)
```
["warn"]
```
Rule Name:[no-confusing-arrow](http://eslint.org/docs/rules/no-confusing-arrow)
```
["error",{"allowParens":true}]
```
Rule Name:[no-continue](http://eslint.org/docs/rules/no-continue)
```
["warn"]
```
Rule Name:[no-else-return](http://eslint.org/docs/rules/no-else-return)
```
["error",{"allowElseIf":false}]
```
Rule Name:[no-iterator](http://eslint.org/docs/rules/no-iterator)
```
["error"]
```
Rule Name:[no-new-wrappers](http://eslint.org/docs/rules/no-new-wrappers)
```
["warn"]
```
Rule Name:[no-param-reassign](http://eslint.org/docs/rules/no-param-reassign)
```
["warn",{"props":true,"ignorePropertyModificationsFor":["acc","accumulator","e","ctx","context","req","request","res","response","$scope","staticContext"]}]
```
Rule Name:[no-unused-expressions](http://eslint.org/docs/rules/no-unused-expressions)
```
["off",{"allowShortCircuit":false,"allowTernary":false,"allowTaggedTemplates":false}]
```
Rule Name:[no-restricted-properties](http://eslint.org/docs/rules/no-restricted-properties)
```
["error",{"object":"arguments","property":"callee","message":"arguments.callee is deprecated"},{"object":"global","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"self","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"window","property":"isFinite","message":"Please use Number.isFinite instead"},{"object":"global","property":"isNaN","message":"Please use Number.isNaN instead"},{"object":"self","property":"isNaN","message":"Please use Number.isNaN instead"},{"object":"window","property":"isNaN","message":"Please use Number.isNaN instead"},{"property":"__defineGetter__","message":"Please use Object.defineProperty instead."},{"property":"__defineSetter__","message":"Please use Object.defineProperty instead."},{"object":"Math","property":"pow","message":"Use the exponentiation operator (**) instead."}]
```
Rule Name:[no-shadow](http://eslint.org/docs/rules/no-shadow)
```
["warn"]
```
Rule Name:[no-script-url](http://eslint.org/docs/rules/no-script-url)
```
["off"]
```
Rule Name:[no-useless-constructor](http://eslint.org/docs/rules/no-useless-constructor)
```
["error"]
```
Rule Name:[newline-per-chained-call](http://eslint.org/docs/rules/newline-per-chained-call)
```
["error",{"ignoreChainWithDepth":4}]
```
Rule Name:[no-nested-ternary](http://eslint.org/docs/rules/no-nested-ternary)
```
["error"]
```
Rule Name:[no-restricted-syntax](http://eslint.org/docs/rules/no-restricted-syntax)
```
["error",{"selector":"ForInStatement","message":"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array."},{"selector":"LabeledStatement","message":"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."},{"selector":"WithStatement","message":"`with` is disallowed in strict mode because it makes code impossible to predict and optimize."}]
```
Rule Name:[no-underscore-dangle](http://eslint.org/docs/rules/no-underscore-dangle)
```
["off",{"allow":["__REDUX_DEVTOOLS_EXTENSION_COMPOSE__"],"allowAfterThis":false,"allowAfterSuper":false,"enforceInMethodNames":true,"allowAfterThisConstructor":false}]
```
Rule Name:[no-unneeded-ternary](http://eslint.org/docs/rules/no-unneeded-ternary)
```
["error",{"defaultAssignment":false}]
```
Rule Name:[no-whitespace-before-property](http://eslint.org/docs/rules/no-whitespace-before-property)
```
["error"]
```
Rule Name:[no-plusplus](http://eslint.org/docs/rules/no-plusplus)
```
["off",{"allowForLoopAfterthoughts":true}]
```
Rule Name:[object-curly-spacing](http://eslint.org/docs/rules/object-curly-spacing)
```
["error","always"]
```
Rule Name:[object-curly-newline](http://eslint.org/docs/rules/object-curly-newline)
```
["off",{"ObjectExpression":{"minProperties":4,"multiline":true,"consistent":true},"ObjectPattern":{"minProperties":4,"multiline":true,"consistent":true},"ImportDeclaration":{"minProperties":4,"multiline":true,"consistent":true},"ExportDeclaration":{"minProperties":4,"multiline":true,"consistent":true}}]
```
Rule Name:[object-shorthand](http://eslint.org/docs/rules/object-shorthand)
```
["error","always",{"ignoreConstructors":false,"avoidQuotes":true}]
```
Rule Name:[one-var](http://eslint.org/docs/rules/one-var)
```
["error","never"]
```
Rule Name:[operator-linebreak](http://eslint.org/docs/rules/operator-linebreak)
```
["error","before",{"overrides":{"=":"none"}}]
```
Rule Name:[quotes](http://eslint.org/docs/rules/quotes)
```
["error","single",{"avoidEscape":true}]
```
Rule Name:[spaced-comment](http://eslint.org/docs/rules/spaced-comment)
```
["error","always",{"line":{"markers":["/"],"exceptions":["-","+"]},"block":{"markers":["!"],"exceptions":["*"],"balanced":true}}]
```
Rule Name:[space-before-function-paren](http://eslint.org/docs/rules/space-before-function-paren)
```
["error",{"anonymous":"always","named":"never","asyncArrow":"always"}]
```
Rule Name:[prefer-const](http://eslint.org/docs/rules/prefer-const)
```
["error",{"destructuring":"all","ignoreReadBeforeAssign":true}]
```
Rule Name:[prefer-destructuring](http://eslint.org/docs/rules/prefer-destructuring)
```
["error",{"VariableDeclarator":{"array":false,"object":true},"AssignmentExpression":{"array":false,"object":false}},{"enforceForRenamedProperties":false}]
```
Rule Name:[prefer-rest-params](http://eslint.org/docs/rules/prefer-rest-params)
```
["error"]
```
Rule Name:[prefer-spread](http://eslint.org/docs/rules/prefer-spread)
```
["error"]
```
Rule Name:[radix](http://eslint.org/docs/rules/radix)
```
["error"]
```
Rule Name:[template-curly-spacing](http://eslint.org/docs/rules/template-curly-spacing)
```
["error","never"]
```
Rule Name:[import/no-extraneous-dependencies](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md)
```
["off",{"devDependencies":["test/**","tests/**","spec/**","**/__tests__/**","**/__mocks__/**","test.{js,jsx}","test-*.{js,jsx}","**/*{.,_}{test,spec}.{js,jsx}","**/jest.config.js","**/jest.setup.js","**/vue.config.js","**/webpack.config.js","**/webpack.config.*.js","**/rollup.config.js","**/rollup.config.*.js","**/gulpfile.js","**/gulpfile.*.js","**/Gruntfile{,.js}","**/protractor.conf.js","**/protractor.conf.*.js","**/karma.conf.js"],"optionalDependencies":false}]
```
Rule Name:[import/no-unresolved](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unresolved.md)
```
["off",{"commonjs":true,"caseSensitive":true}]
```
Rule Name:[import/extensions](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/extensions.md)
```
["off","ignorePackages",{"js":"never","mjs":"never","jsx":"never"}]
```
Rule Name:[import/first](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/first.md)
```
["off"]
```
Rule Name:[react/destructuring-assignment](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/destructuring-assignment.md)
```
["off","always"]
```
Rule Name:[react/forbid-prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md)
```
["off",{"forbid":["any","array","object"],"checkContextTypes":true,"checkChildContextTypes":true}]
```
Rule Name:[react/jsx-closing-tag-location](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-closing-tag-location.md)
```
["warn"]
```
Rule Name:[react/jsx-filename-extension](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md)
```
["error",{"extensions":[".jsx",".tsx"]}]
```
Rule Name:[react/jsx-one-expression-per-line](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-one-expression-per-line.md)
```
["off",{"allow":"single-child"}]
```
Rule Name:[react/jsx-props-no-spreading](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-spreading.md)
```
["off",{"html":"enforce","custom":"enforce","explicitSpread":"ignore","exceptions":[]}]
```
Rule Name:[react/jsx-no-script-url](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-script-url.md)
```
["error",[{"name":"Link","props":["to"]},{"name":"Foo","props":["href","to"]}]]
```
Rule Name:[react/require-default-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/require-default-props.md)
```
["off",{"forbidDefaultForRequired":true}]
```
Rule Name:[react/no-danger](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-danger.md)
```
["warn"]
```
Rule Name:[react/no-did-mount-set-state](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-did-mount-set-state.md)
```
["off"]
```
Rule Name:[react/prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prop-types.md)
```
["off",{"ignore":[],"customValidators":[],"skipUndeclared":false}]
```
Rule Name:[react/static-property-placement](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/static-property-placement.md)
```
["off","property assignment"]
```
Rule Name:[jsx-a11y/media-has-caption](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/media-has-caption.md)
```
["off",{"audio":[],"video":[],"track":[]}]
```
Rule Name:[jsx-a11y/no-static-element-interactions](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-static-element-interactions.md)
```
["off",{"handlers":["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}]
```
Rule Name:[jsx-a11y/click-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/click-events-have-key-events.md)
```
["off"]
```
Rule Name:[jsx-a11y/no-noninteractive-element-to-interactive-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-to-interactive-role.md)
```
["off",{"ul":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"ol":["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],"li":["menuitem","option","row","tab","treeitem"],"table":["grid"],"td":["gridcell"]}]
```
Rule Name:[jsx-a11y/no-noninteractive-element-interactions](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md)
```
["off",{"handlers":["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}]
```
Rule Name:[jsx-a11y/mouse-events-have-key-events](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/mouse-events-have-key-events.md)
```
["off"]
```
Rule Name:[jsx-a11y/no-noninteractive-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-tabindex.md)
```
["off",{"tags":[],"roles":["tabpanel"]}]
```
Rule Name:[jsx-a11y/anchor-is-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-is-valid.md)
```
["off",{"components":["Link"],"specialLink":["to"],"aspects":["noHref","invalidHref","preferButton"]}]
```
Rule Name:[import/no-duplicates](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-duplicates.md)
```
["error"]
```
Rule Name:[import/no-mutable-exports](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-mutable-exports.md)
```
["warn"]
```
Rule Name:[import/no-webpack-loader-syntax](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-webpack-loader-syntax.md)
```
["warn"]
```
Rule Name:[import/prefer-default-export](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/prefer-default-export.md)
```
["off"]
```
Rule Name:[array-bracket-spacing](http://eslint.org/docs/rules/array-bracket-spacing)
```
["error","never"]
```
Rule Name:[block-spacing](http://eslint.org/docs/rules/block-spacing)
```
["error","always"]
```
Rule Name:[comma-spacing](http://eslint.org/docs/rules/comma-spacing)
```
["error",{"before":false,"after":true}]
```
Rule Name:[comma-style](http://eslint.org/docs/rules/comma-style)
```
["error","last"]
```
Rule Name:[eol-last](http://eslint.org/docs/rules/eol-last)
```
["error","always"]
```
Rule Name:[function-paren-newline](http://eslint.org/docs/rules/function-paren-newline)
```
["warn","multiline"]
```
Rule Name:[generator-star-spacing](http://eslint.org/docs/rules/generator-star-spacing)
```
["warn",{"before":false,"after":true}]
```
Rule Name:[id-length](http://eslint.org/docs/rules/id-length)
```
["off"]
```
Rule Name:[implicit-arrow-linebreak](http://eslint.org/docs/rules/implicit-arrow-linebreak)
```
["warn","beside"]
```
Rule Name:[key-spacing](http://eslint.org/docs/rules/key-spacing)
```
["error",{"beforeColon":false,"afterColon":true}]
```
Rule Name:[keyword-spacing](http://eslint.org/docs/rules/keyword-spacing)
```
["error",{"overrides":{"if":{"after":true},"for":{"after":true},"while":{"after":true},"else":{"after":true}},"before":true,"after":true}]
```
Rule Name:[linebreak-style](http://eslint.org/docs/rules/linebreak-style)
```
["warn","unix"]
```
Rule Name:[no-case-declarations](http://eslint.org/docs/rules/no-case-declarations)
```
["error"]
```
Rule Name:[no-const-assign](http://eslint.org/docs/rules/no-const-assign)
```
["error"]
```
Rule Name:[no-eval](http://eslint.org/docs/rules/no-eval)
```
["error"]
```
Rule Name:[no-loop-func](http://eslint.org/docs/rules/no-loop-func)
```
["error"]
```
Rule Name:[no-mixed-operators](http://eslint.org/docs/rules/no-mixed-operators)
```
["error",{"allowSamePrecedence":true}]
```
Rule Name:[no-multi-assign](http://eslint.org/docs/rules/no-multi-assign)
```
["error"]
```
Rule Name:[no-multiple-empty-lines](http://eslint.org/docs/rules/no-multiple-empty-lines)
```
["error",{"max":1,"maxBOF":0,"maxEOF":0}]
```
Rule Name:[no-new-func](http://eslint.org/docs/rules/no-new-func)
```
["error"]
```
Rule Name:[no-new-object](http://eslint.org/docs/rules/no-new-object)
```
["error"]
```
Rule Name:[no-prototype-builtins](http://eslint.org/docs/rules/no-prototype-builtins)
```
["error"]
```
Rule Name:[no-trailing-spaces](http://eslint.org/docs/rules/no-trailing-spaces)
```
["error",{"skipBlankLines":false,"ignoreComments":false}]
```
Rule Name:[no-undef](http://eslint.org/docs/rules/no-undef)
```
["error"]
```
Rule Name:[no-useless-escape](http://eslint.org/docs/rules/no-useless-escape)
```
["error"]
```
Rule Name:[no-var](http://eslint.org/docs/rules/no-var)
```
["error"]
```
Rule Name:[nonblock-statement-body-position](http://eslint.org/docs/rules/nonblock-statement-body-position)
```
["error","beside"]
```
Rule Name:[padded-blocks](http://eslint.org/docs/rules/padded-blocks)
```
["error","never"]
```
Rule Name:[prefer-arrow-callback](http://eslint.org/docs/rules/prefer-arrow-callback)
```
["warn",{"allowNamedFunctions":false,"allowUnboundThis":true}]
```
Rule Name:[prefer-template](http://eslint.org/docs/rules/prefer-template)
```
["error"]
```
Rule Name:[quote-props](http://eslint.org/docs/rules/quote-props)
```
["error","as-needed",{"keywords":false}]
```
Rule Name:[semi](http://eslint.org/docs/rules/semi)
```
["error","always"]
```
Rule Name:[space-before-blocks](http://eslint.org/docs/rules/space-before-blocks)
```
["error"]
```
Rule Name:[space-in-parens](http://eslint.org/docs/rules/space-in-parens)
```
["error","never"]
```
Rule Name:[space-infix-ops](http://eslint.org/docs/rules/space-infix-ops)
```
["error"]
```
Rule Name:[wrap-iife](http://eslint.org/docs/rules/wrap-iife)
```
["error","outside"]
```
Rule Name:[react-hooks/rules-of-hooks](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/react-hooks/rules-of-hooks.md)
```
["error"]
```
Rule Name:[react-hooks/exhaustive-deps](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/react-hooks/exhaustive-deps.md)
```
["warn"]
```
Rule Name:[jsx-a11y/anchor-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/anchor-has-content.md)
```
["error",{"components":[]}]
```
Rule Name:[jsx-a11y/aria-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-role.md)
```
["error",{"ignoreNonDom":false,"ignoreNonDOM":false}]
```
Rule Name:[jsx-a11y/aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-props.md)
```
["error"]
```
Rule Name:[jsx-a11y/aria-proptypes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-proptypes.md)
```
["error"]
```
Rule Name:[jsx-a11y/aria-unsupported-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-unsupported-elements.md)
```
["error"]
```
Rule Name:[jsx-a11y/alt-text](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md)
```
["error",{"elements":["img","object","area","input[type=\"image\"]"],"img":[],"object":[],"area":[],"input[type=\"image\"]":[]}]
```
Rule Name:[jsx-a11y/img-redundant-alt](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/img-redundant-alt.md)
```
["error"]
```
Rule Name:[jsx-a11y/label-has-for](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-for.md)
```
["off",{"components":[],"required":{"every":["nesting","id"]},"allowChildren":false}]
```
Rule Name:[jsx-a11y/label-has-associated-control](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-associated-control.md)
```
["error",{"labelComponents":[],"labelAttributes":[],"controlComponents":[],"assert":"both","depth":25}]
```
Rule Name:[jsx-a11y/control-has-associated-label](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/control-has-associated-label.md)
```
["error",{"labelAttributes":["label"],"controlComponents":[],"ignoreElements":["audio","canvas","embed","input","textarea","tr","video"],"ignoreRoles":["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],"depth":5}]
```
Rule Name:[jsx-a11y/no-access-key](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-access-key.md)
```
["error"]
```
Rule Name:[jsx-a11y/no-onchange](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-onchange.md)
```
["off"]
```
Rule Name:[jsx-a11y/interactive-supports-focus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/interactive-supports-focus.md)
```
["error"]
```
Rule Name:[jsx-a11y/role-has-required-aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-has-required-aria-props.md)
```
["error"]
```
Rule Name:[jsx-a11y/role-supports-aria-props](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/role-supports-aria-props.md)
```
["error"]
```
Rule Name:[jsx-a11y/tabindex-no-positive](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/tabindex-no-positive.md)
```
["error"]
```
Rule Name:[jsx-a11y/heading-has-content](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md)
```
["error",{"components":[""]}]
```
Rule Name:[jsx-a11y/html-has-lang](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/html-has-lang.md)
```
["error"]
```
Rule Name:[jsx-a11y/lang](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/lang.md)
```
["error"]
```
Rule Name:[jsx-a11y/no-distracting-elements](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-distracting-elements.md)
```
["error",{"elements":["marquee","blink"]}]
```
Rule Name:[jsx-a11y/scope](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/scope.md)
```
["error"]
```
Rule Name:[jsx-a11y/accessible-emoji](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/accessible-emoji.md)
```
["error"]
```
Rule Name:[jsx-a11y/aria-activedescendant-has-tabindex](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-activedescendant-has-tabindex.md)
```
["error"]
```
Rule Name:[jsx-a11y/iframe-has-title](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/iframe-has-title.md)
```
["error"]
```
Rule Name:[jsx-a11y/no-autofocus](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-autofocus.md)
```
["error",{"ignoreNonDOM":true}]
```
Rule Name:[jsx-a11y/no-redundant-roles](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-redundant-roles.md)
```
["error"]
```
Rule Name:[jsx-a11y/no-interactive-element-to-noninteractive-role](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-interactive-element-to-noninteractive-role.md)
```
["error",{"tr":["none","presentation"]}]
```
Rule Name:[jsx-a11y/autocomplete-valid](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/master/docs/rules/autocomplete-valid.md)
```
["off",{"inputComponents":[]}]
```
Rule Name:[jsx-quotes](http://eslint.org/docs/rules/jsx-quotes)
```
["error","prefer-double"]
```
Rule Name:[react/display-name](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/display-name.md)
```
["off",{"ignoreTranspilerName":false}]
```
Rule Name:[react/forbid-dom-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-dom-props.md)
```
["off",{"forbid":[]}]
```
Rule Name:[react/jsx-boolean-value](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md)
```
["error","never",{"always":[]}]
```
Rule Name:[react/jsx-closing-bracket-location](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-closing-bracket-location.md)
```
["error","line-aligned"]
```
Rule Name:[react/jsx-curly-spacing](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-curly-spacing.md)
```
["error","never",{"allowMultiline":true}]
```
Rule Name:[react/jsx-handler-names](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-handler-names.md)
```
["off",{"eventHandlerPrefix":"handle","eventHandlerPropPrefix":"on"}]
```
Rule Name:[react/jsx-indent-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-indent-props.md)
```
["error",2]
```
Rule Name:[react/jsx-key](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-key.md)
```
["off"]
```
Rule Name:[react/jsx-max-props-per-line](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-max-props-per-line.md)
```
["error",{"maximum":1,"when":"multiline"}]
```
Rule Name:[react/jsx-no-bind](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md)
```
["error",{"ignoreRefs":true,"allowArrowFunctions":true,"allowFunctions":false,"allowBind":false,"ignoreDOMComponents":true}]
```
Rule Name:[react/jsx-no-duplicate-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-duplicate-props.md)
```
["error",{"ignoreCase":true}]
```
Rule Name:[react/jsx-no-literals](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-literals.md)
```
["off",{"noStrings":true}]
```
Rule Name:[react/jsx-no-undef](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-undef.md)
```
["error"]
```
Rule Name:[react/jsx-pascal-case](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-pascal-case.md)
```
["error",{"allowAllCaps":true,"ignore":[]}]
```
Rule Name:[react/sort-prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/sort-prop-types.md)
```
["off",{"ignoreCase":true,"callbacksLast":false,"requiredFirst":false,"sortShapeProp":true}]
```
Rule Name:[react/jsx-sort-prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-sort-prop-types.md)
```
["off"]
```
Rule Name:[react/jsx-sort-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-sort-props.md)
```
["off",{"ignoreCase":true,"callbacksLast":false,"shorthandFirst":false,"shorthandLast":false,"noSortAlphabetically":false,"reservedFirst":true}]
```
Rule Name:[react/jsx-sort-default-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-sort-default-props.md)
```
["off",{"ignoreCase":true}]
```
Rule Name:[react/jsx-uses-react](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-uses-react.md)
```
["error"]
```
Rule Name:[react/jsx-uses-vars](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-uses-vars.md)
```
["error"]
```
Rule Name:[react/no-deprecated](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-deprecated.md)
```
["error"]
```
Rule Name:[react/no-did-update-set-state](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-did-update-set-state.md)
```
["error"]
```
Rule Name:[react/no-will-update-set-state](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-will-update-set-state.md)
```
["error"]
```
Rule Name:[react/no-direct-mutation-state](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-direct-mutation-state.md)
```
["off"]
```
Rule Name:[react/no-is-mounted](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-is-mounted.md)
```
["error"]
```
Rule Name:[react/no-multi-comp](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-multi-comp.md)
```
["off"]
```
Rule Name:[react/no-set-state](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-set-state.md)
```
["off"]
```
Rule Name:[react/no-string-refs](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-string-refs.md)
```
["error"]
```
Rule Name:[react/no-unknown-property](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md)
```
["error"]
```
Rule Name:[react/prefer-es6-class](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-es6-class.md)
```
["error","always"]
```
Rule Name:[react/prefer-stateless-function](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-stateless-function.md)
```
["error",{"ignorePureComponents":true}]
```
Rule Name:[react/react-in-jsx-scope](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/react-in-jsx-scope.md)
```
["error"]
```
Rule Name:[react/require-render-return](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/require-render-return.md)
```
["error"]
```
Rule Name:[react/self-closing-comp](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md)
```
["error"]
```
Rule Name:[react/jsx-wrap-multilines](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-wrap-multilines.md)
```
["error",{"declaration":"parens-new-line","assignment":"parens-new-line","return":"parens-new-line","arrow":"parens-new-line","condition":"parens-new-line","logical":"parens-new-line","prop":"parens-new-line"}]
```
Rule Name:[react/jsx-first-prop-new-line](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-first-prop-new-line.md)
```
["error","multiline-multiprop"]
```
Rule Name:[react/jsx-equals-spacing](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-equals-spacing.md)
```
["error","never"]
```
Rule Name:[react/jsx-indent](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-indent.md)
```
["error",2]
```
Rule Name:[react/jsx-no-target-blank](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md)
```
["error",{"enforceDynamicLinks":"always"}]
```
Rule Name:[react/jsx-no-comment-textnodes](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-comment-textnodes.md)
```
["error"]
```
Rule Name:[react/no-render-return-value](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-render-return-value.md)
```
["error"]
```
Rule Name:[react/require-optimization](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/require-optimization.md)
```
["off",{"allowDecorators":[]}]
```
Rule Name:[react/no-find-dom-node](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md)
```
["error"]
```
Rule Name:[react/forbid-component-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-component-props.md)
```
["off",{"forbid":[]}]
```
Rule Name:[react/forbid-elements](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md)
```
["off",{"forbid":[]}]
```
Rule Name:[react/no-danger-with-children](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-danger-with-children.md)
```
["error"]
```
Rule Name:[react/no-unused-prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unused-prop-types.md)
```
["error",{"customValidators":[],"skipShapeProps":true}]
```
Rule Name:[react/style-prop-object](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/style-prop-object.md)
```
["error"]
```
Rule Name:[react/no-unescaped-entities](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unescaped-entities.md)
```
["error"]
```
Rule Name:[react/no-children-prop](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-children-prop.md)
```
["error"]
```
Rule Name:[react/jsx-tag-spacing](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-tag-spacing.md)
```
["error",{"closingSlash":"never","beforeSelfClosing":"always","afterOpening":"never","beforeClosing":"never"}]
```
Rule Name:[react/jsx-space-before-closing](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-space-before-closing.md)
```
["off","always"]
```
Rule Name:[react/no-array-index-key](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-array-index-key.md)
```
["error"]
```
Rule Name:[react/forbid-foreign-prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-foreign-prop-types.md)
```
["warn",{"allowInPropTypes":true}]
```
Rule Name:[react/void-dom-elements-no-children](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/void-dom-elements-no-children.md)
```
["error"]
```
Rule Name:[react/default-props-match-prop-types](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/default-props-match-prop-types.md)
```
["error",{"allowRequiredDefaults":false}]
```
Rule Name:[react/no-redundant-should-component-update](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-redundant-should-component-update.md)
```
["error"]
```
Rule Name:[react/no-unused-state](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unused-state.md)
```
["error"]
```
Rule Name:[react/boolean-prop-naming](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/boolean-prop-naming.md)
```
["off",{"propTypeNames":["bool","mutuallyExclusiveTrueProps"],"rule":"^(is|has)[A-Z]([A-Za-z0-9]?)+","message":""}]
```
Rule Name:[react/no-typos](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-typos.md)
```
["error"]
```
Rule Name:[react/jsx-curly-brace-presence](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-curly-brace-presence.md)
```
["error",{"props":"never","children":"never"}]
```
Rule Name:[react/no-access-state-in-setstate](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-access-state-in-setstate.md)
```
["error"]
```
Rule Name:[react/button-has-type](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/button-has-type.md)
```
["error",{"button":true,"submit":true,"reset":false}]
```
Rule Name:[react/jsx-child-element-spacing](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md)
```
["off"]
```
Rule Name:[react/no-this-in-sfc](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-this-in-sfc.md)
```
["error"]
```
Rule Name:[react/jsx-max-depth](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-max-depth.md)
```
["off"]
```
Rule Name:[react/jsx-props-no-multi-spaces](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-multi-spaces.md)
```
["error"]
```
Rule Name:[react/no-unsafe](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unsafe.md)
```
["off"]
```
Rule Name:[react/jsx-fragments](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-fragments.md)
```
["error","syntax"]
```
Rule Name:[react/jsx-curly-newline](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-curly-newline.md)
```
["error",{"multiline":"consistent","singleline":"consistent"}]
```
Rule Name:[react/state-in-constructor](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/state-in-constructor.md)
```
["error","always"]
```
Rule Name:[react/prefer-read-only-props](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prefer-read-only-props.md)
```
["off"]
```
Rule Name:[react/jsx-no-useless-fragment](http