Skip to content

Instantly share code, notes, and snippets.

@tidusia
Last active July 28, 2020 13:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tidusia/d41fe076e8680dc78687e04c7bf912c6 to your computer and use it in GitHub Desktop.
Save tidusia/d41fe076e8680dc78687e04c7bf912c6 to your computer and use it in GitHub Desktop.

React new project

Prettier

  • npm i -D prettier
  • package.json scripts: "format": "prettier \"src/**/*.{js,html}\" --write"
  • touch .prettierrc avec : { "trailingComma": "es5" }

JetBrains: Preferences | Languages & Frameworks | JavaScript | Prettier

  • Enable the option Run on save for files.

Eslint

  • npm i -D eslint eslint-config-prettier babel-eslint eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks

  • package.json scripts: "lint": "eslint \"src/**/*.{js,jsx}\""

  • touch .eslintrc.json et y écrire :

{
  "extends": [
    "eslint:recommended",
    "plugin:import/errors",
    "plugin:react/recommended",
    "plugin:jsx-a11y/recommended",
    "prettier",
    "prettier/react"
  ],
  "rules": {
    "react/prop-types": "off",
    "no-console": "warn",
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn"
  },
  "plugins": ["react", "import", "jsx-a11y", "react-hooks"],
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  },
  "env": {
    "es6": true,
    "browser": true,
    "node": true
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  }
}

RubyMine: Preferences | Languages & Frameworks | JavaScript | Eslint =>

  • Automatic Eslint config
  • Fix on save

.gitignore

node_modules
.DS_Store
.cache/
dist
coverage
.vscode
.env
.idea/

Parcel

  • npm install -D parcel-bundler
  • package.json scripts: "dev": "parcel src/index.html"

Pre-commit

  • husky avec prettier + lint + tests

React.StrictMode

  • Encapsuler toute l'application autour de React.StrictMode afin de limiter l'usage de fonctionnalités dépréciées

Browserlist

  • Dans le package.json : "browserslist": ["last 2 Chrome versions"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment