인프런 - 프론트엔드 개발환경의 이해와 실습-05

업데이트:

린트 (Lint)

  • 포맷팅 (코드의 일관성)
  • 코드품질

설치

$ npm install eslint --save-dev
$ npx eslint --init // .eslintrc 디렉토리에 파일이 생성
// 대화형 세팅 진행
// .eslintrc.js
module.exports = {
    "env": {
        "browser": true,
        "es6": true
    },
    "extends": "eslint:recommended",
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "rules": {
    }
};

Prettier

코드를 더 예쁘게 만들어 준다. 일관성있는 코드 스타일로 다듬어준다.

$ npm i -D prettier
$ npx eslint app.js --fix

실행하게되면 일부 lint 와 겹치는 부분이 있기때문에 중복되는 부분을 제거해서 통합하여 사용할 수 있게 만들어 주는 방법이 있다.

$ npm i -D eslint-config-prettier
$ npx prettier app.js --write

// .eslintrc.js
{
    extends: [
        "eslint:recommended",
        "eslint-config-prettier" // 추가된 내용
    ]
}

매번 두번씩 실행시키는것도 불편하다 한번에 실행가능하게 변경 가능하다

$ npm i -D eslint-plugin-prettier

// .eslintrv.js
{
    ...
    plugins: [
        "prettier"
    ],
    "rules": {
        "prettier/prettier": "error"
    }
}

$ npx exlint app.js --fix // 이 명령어 하나면 한번에 적용 가능

자동화

매번 코딩할때마다 npm run 을 통해서 린트를 실행하기에는 번거롭다 이를 자동화하는 방법이 있다. 깃 훅을 사용하면 커밋전 또는 푸시전 등 깃 명령어 실행 시점에 끼어들 수 있는 훅을 제공할 수 있다.

$ npm i -D husky

// package.json
{
    "husky": {
        "hooks": {
            "pre-commit": "eslint app.js --fix"
        }
    }
}

위와같이 husky 를 설치하고 package.json 을 설정하면 커밋전에 린트검사를 진행하고 에러가 발생하면 커밋을 진행하지 않게된다.

그러나 프로젝트의 규모가 커질수록 린트의 검사속도도 증가하기때문에 모든 파일이 아니라 커밋이 진행된 파일에 대해서만 린트를 검사해줄 필요가 있다.

$ npm i -D lint-staged

// package.json
{
    "husky": {
        "hooks": {
            "pre-commit": "lint-staged"
        }
    },
    "lint-staged": {
        "*.js": "eslint --fix"
    }
}

댓글남기기