티스토리 뷰

반응형

Git Commit 전에 ESLint 자동 검사 하기

보통 프론트엔드에서는 2인 이상 개발할 때 코드 컨벤션을 잡아주는 ESLint 오픈 소스를 사용합니다. 그런데 실제로 커밋을 하기전에 lint 검사를 하지 않거나 build 명령어를 실행하고 커밋하지 않는 이상 ESLint 코드 컨벤션을 어긴 코드들이 커밋될 수 있습니다. 이러한 문제점을 해결해주는것이 husky, lint-staged, prettier가 있습니다. 이것에 대해 간단히 알아보겠습니다.

husky

깃 커밋 또는 푸쉬전에 eslint, test 등을 실행 해볼 수 있는 도구입니다. 만약 테스트 또는 eslint 문법을 어겼다면 방금 커밋하려고했던 파일들은 커밋이 되지 않습니다.

husky 설치

npm install husky --save-dev

husky 사용법

아래와 같이 커밋이나 푸시전에 테스트나 eslint 등을 테스트할 수 있습니다.

// package.json
{
  "husky": {
    "hooks": {
      "pre-commit": "eslint --fix",
      "pre-push": "npm test",
      "...": "..."화

    }
  }
}

lint-staged

검사하기118/500자 내용삭제
맞춤법검사기 결과영역
staged된 파일들을 lint 해주는 도구입니다. 전체 프로젝트를 ESLint를 실행하는 것은 속도가 느릴 수 있는데 lint-staged를 사용하면 특정 패턴에 파일에 대해서만 lint 수행을 가능하게 해줍니다.

lint-staged 설치

npm install --save-dev lint-staged husky

lint-staged 사용법

아래는 .js파일에대해 "eslint --fix" 명령어를 실행하고 해당 파일들을 스테이지에 올려줍니다.

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

prettier

코드 컨벤션에 맞지 않는 코드를 고쳐주는 도구입니다. ES2017을 포함해서 JSX, typescript, flow를 지원하고, 심지어 CSS, LESS, SCSS 까지 지원합니다.

foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());

위와 같은 코드가있으면 prettier에 옵션에 맞는 코드를 작성하면 커밋전에 아래와같이 코드를 수정해줍니다.

foo(
  reallyLongArg(),
  omgSoManyParameters(),
  IShouldRefactorThis(),
  isThereSeriouslyAnotherOne()
);

prettier 설치

npm install husky lint-staged prettier --save-dev

prettier 사용법

아래 설정은 커밋 전에 staged된 모든 js파일을 대상으로 콤마를 찍어주고, 홑따옴표를 사용하고, 탭의 길이가 4로 수정되도록 설정했다.

{
  "scripts": {
    "precommit": "lint-staged"
  },
  "lint-staged": {
    "*.js": [
      //prettier [opts] [filename ...]
      "prettier --write --trailing-comma es5 --single-quote true --tab-width 4",
      "git add"
    ]
  }
}

나머지 옵션은 여기를 확인해주시면 됩니다.

반응형

'Front-End > Javascript' 카테고리의 다른 글

Angular 양방향 데이터 바인딩 원리  (0) 2019.04.06
자바스크립트 Execution Context  (0) 2019.04.06
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함