Giter Club home page Giter Club logo

lint's Introduction

Linting setup for every project

Step 1: Install ESLint Config from Airbnb

https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb

Install: npx install-peerdeps --dev eslint-config-airbnb npm install --save-dev eslint-config-prettier

You will be asked to use yarn if yarn is your default package manager

Create a file named .eslintrc and config like this: prettier must be in last in order to override some eslints.

{
    "extends": ["airbnb", "prettier"],
    "env": {
        "browser": true,
        "node": true
    },
    "rules": {
        "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }]
    }
}

Step 2: Install and config a code formatter: prettier

yarn add prettier

Create a file named .prettierrc and config like this

{
    "singleQuote": true,
    "printWidth": 80,
    "editor.formatOnSave": true,
    "proseWrap": "always",
    "tabWidth": 2,
    "requireConfig": false,
    "useTabs": false,
    "trailingComma": "none",
    "bracketSpacing": true,
    "jsxBracketSameLine": false,
    "semi": true
}

Now prettier has been setup but not executed (we "extends": "airbnb" up on .eslintrc ), we prettier to run automagically everytime we save a file:

If not existed yet, create a folder named .vscode and create a file named settings.json and add this line of code in:

{
    "editor.formatOnSave": true
}

Step 3: Install and config precommit hooks: husky, and lint-staged

yarn add husky lint-staged

In package.json, add this config in to run eslint every time you commit: Once again, we execute prettier after eslint. It's called prettier for a reason, right?

"lint-staged": {
    "**/*.js": [
        "eslint --fix",
        "prettier --write"
        "git add"
    ]
},
"husky": {
    "hooks": {
        "pre-commit": "lint-staged"
    }
},

lint's People

Contributors

huypham50 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.