{ "env": { "browser": true, "es2021": true }, "extends": [ "plugin:react/recommended" ], "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": 12, "sourceType": "module" }, "plugins": [ "react", "react-hooks", "tailwindcss" ], "rules": { "react-hooks/rules-of-hooks": "error", "react/react-in-jsx-scope": "off", "react/button-has-type": "error", "react/prop-types": "error", "react/require-default-props": "off", "react/no-array-index-key": "error", "react/jsx-uses-react": "error", "react/display-name": "error", "react/no-danger-with-children": "error", // "react-hooks/exhaustive-deps": "warn", // "react/jsx-no-bind": "error", "react/jsx-uses-vars": "error", "no-restricted-syntax": ["warn", { "selector": "CallExpression[callee.object.name='console'][callee.property.name!=/^(warn|info)$/]", "message": "Unexpected property on console object was called" }], "semi": [2, "never"], "tailwindcss/classnames-order": "warn", "tailwindcss/enforces-negative-arbitrary-values": "warn", "tailwindcss/enforces-shorthand": "warn", "tailwindcss/migration-from-tailwind-2": "warn", "tailwindcss/no-arbitrary-value": "off", "tailwindcss/no-contradicting-classname": "error" } } // https://dev.to/logrocket/12-essential-eslint-rules-for-react-5doc