Notes of Nafi
  • Hello! 🖐
  • Cloud
    • AWS
    • GCP
    • Ansible
      • Desktop configuration
  • Web Dev
    • husky
    • Web Cache/HTTP Caching Headers
    • package manger
    • Webhook
    • ESLint
    • Back End
      • node.js
    • Front End
      • React
        • Lint
        • Next.js
      • Angular
      • Flutter
        • cubit
        • flutter
        • provider
      • Tailwind CSS
      • CSS
    • Lerna
    • nginx
  • Software Architecture
  • Startup
    • Legal Issues
  • Linux
    • Misc problems & solutions
    • CTF Tools
    • Network Tools
    • systemctl
    • terminal
      • dotfiles
      • tmux
      • zsh
      • command line tools
    • Git
      • merging strategy
      • git workflows
      • basics
  • Programming Language
    • JavaScript
      • misc
      • draft
    • C++
  • Google Docs
    • Spreadsheet
  • Design
  • Windows
    • Terminal
  • Similar websites
Powered by GitBook
On this page
  1. Web Dev
  2. Front End
  3. React

Lint

Dev dependencies
yarn add -D prettier && \
yarn add -D babel-eslint && \
npx install-peerdeps --dev eslint-config-airbnb && \
yarn add -D eslint-config-prettier eslint-plugin-prettier
or add a lint script
"lint": "yarn add -D prettier && yarn add -D babel-eslint && npx install-peerdeps --dev eslint-config-airbnb && yarn add -D eslint-config-prettier eslint-plugin-prettier"
.vscode/settings.json
{
  "editor.tabSize": 2,
  "editor.insertSpaces": true,
  "editor.detectIndentation": false,
  // config related to code formatting
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "[javascript]": {
    "editor.formatOnSave": false,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[javascriptreact]": {
    "editor.formatOnSave": false,
    "editor.defaultFormatter": null
  },
  "javascript.validate.enable": false, //disable all built-in syntax checking
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true,
    "source.fixAll.tslint": true,
    "source.organizeImports": true
  },
  "eslint.alwaysShowStatus": true,
  // emmet
  "emmet.triggerExpansionOnTab": true,
  "emmet.includeLanguages": {
    "javascript": "javascriptreact"
  }
}
.eslintrc
{
  "extends": [
    "airbnb",
    "airbnb/hooks",
    "eslint:recommended",
    "prettier",
    "plugin:jsx-a11y/recommended"
  ],
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 8
  },
  "env": {
    "browser": true,
    "node": true,
    "es6": true,
    "jest": true
  },
  "rules": {
    "react/react-in-jsx-scope": 0,
    "react-hooks/rules-of-hooks": "error",
    "no-console": 0,
    "react/state-in-constructor": 0,
    "indent": 0,
    "linebreak-style": 0,
    "react/prop-types": 0,
    "jsx-a11y/click-events-have-key-events": 0,
    "react/jsx-filename-extension": [
      1,
      {
        "extensions": [".js", ".jsx"]
      }
    ],
    "prettier/prettier": [
      "error",
      {
        "trailingComma": "es5",
        "singleQuote": true,
        "printWidth": 100,
        "tabWidth": 2,
        // "semi": true,
        // "semi": false,
        "endOfLine": "auto"
      }
    ]
  },
  "plugins": ["prettier", "react", "react-hooks"]
}
PreviousReactNextNext.js

Last updated 3 years ago