UNPKG

eslint-config-imweb

Version:

IMWeb团队eslint配置规则

1,167 lines (1,154 loc) 77 kB
*本规范基于 [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