ESLint is a package to find problematic code. React ESLint comes with React create-react-app app-name by default. Rules We can extent ESLint rules by adding them into package.json file under rules . "eslintConfig": { "extends": [ "react-app", "react-app/jest" ], "rules": { "no-unused-vars": "warn", "no-var": "error", "no-empty": "warn", "prefer-template": "warn", "prefer-const": "warn" } } Rule may have 3 flags: "off" , "warn" & "error" "error" rule does not permit to compile a React project until it is resolved. Manual check in terminal Run ESLint check in terminal by typing eslint './posts/eslint.js' Run batch error checking with eslint './posts/**js' ESLint extension If we install ESLint VS Code extension we can see errors and warning highlight right in the editor. Automatic fix ESLint may try to fix problems with eslint './posts/eslint.js' --fix Manual installation We may install ESLint manually by sudo npm i -D eslint and then initialize configuration by eslint --init command. Different style guides may be installed standard or Airbnb or Google . Installation example. Many dev dependencies are inserted into the package.json file and configuration file .eslintrc.js is generated. // package.json "devDependencies": { "eslint": "^7.32.0", "eslint-config-airbnb": "^19.0.2", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.25.3", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^5.2.0", "eslint-plugin-react": "^7.27.1", "eslint-plugin-react-hooks": "^4.3.0" } // .eslintrc.js module.exports = { env: { browser: true, es2021: true }, extends: [ 'plugin:react/jsx-runtime', 'standard' ], parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true }, ecmaVersion: 12, sourceType: 'module' }, plugins: [ 'react', '@typescript-eslint' ], globals: { React: true, google: true, mount: true, mountWithRouter: true, shallow: true, shallowWithRouter: true, context: true, expect: true, jsdom: true, JSX: true, }, rules: { 'comma-dangle': ['error', 'only-multiline'], 'react/no-unescaped-entities': 'off', 'space-before-function-paren': ['error', 'never'], 'react/prop-types': 'off', 'react/react-in-jsx-scope': 'off', 'no-template-curly-in-string': 'off', 'no-use-before-define': 'off', 'no-console': 'off', }, settings: { react: { version: 'detect' } } } eslintConfig can be removed from package.json if we use a separate .eslintrc.js If ESLint does not allow to start or build a project we may create .env file with following statement. // .env ESLINT_NO_DEV_ERRORS=true DISABLE_ESLINT_PLUGIN=true Disable ESLint warnings To disable ESLint warnings we may type /* eslint-disable */ at the top of the file // eslint-disable-line on the same line /* eslint-disable-next-line */ or // eslint-disable-next-line before the line More information can be found on the https://eslint.org page. ESLint in Next.js For some reason could not let linter work in Next.js This guidline helped me Plugins eslint-plugin-only-warn - will warn on every rule, instead of throwing an error Lint in npm script // package.json "scripts": { "client": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "lint": "eslint '**/*.js'", "eject": "react-scripts eject", "server": "nodemon server.js", "dev": "concurrently "npm run server" "npm run client"" },