husky

진성·2022년 7월 17일
0
post-thumbnail

이전 블로그인 ESLint 와 Pritter를 확인해보면 개발자들은 협업을 많이 한다고 나와있다.
이때 협엽을 하는데 코드를 공유하고 병렬 개발을 하기 위해서는 깃을 사용하여 하게 된다.
하지만 이때 코드 스타일을 맞혀서 깃을 올려야 하지만 이를 지키지 않고 올리는 경우도 있을것이다.
이를 방지하기 위해서 나온것이 Git Hooks이다.

Git Hooks란?

Git Hooks는 Git과 관련한 어떤 이벤트가 발생했을 때 특정 스크립트를 실행할 수 있도록 하는 기능이다.
Git Hooks는 크게 클라이언트 훅과 서버 훅으로 나뉘는데 클라이언트 훅은 커밋, 머지가 발생하거나 푸시가 발생하기 전에 클라이언트에서 실행하는 훅이다.
반면에 서버 훅은 Git 레퍼지토리로 푸시가 발생했을 때 서버에서 실행하는 훅이다.

이 중에 클라이언트 훅을 이용하여 코드 스타일이 맞지 않았을 때 커밋 또는 푸시가 되지 않게 방지하는 것이 가능해진다.
하지만 GIt Hooks는 사용방법이 조금 복잡하기에 이를 쉽게 도와주는 npm 라이브러리인 husky가 존재한다.

husky란?

허스키는 소스코드를 커밋하기전에 기존의 규칙인 타입스크립트, eslint, prittier 등의 규칙을 지켰는지 검증해주는 라이브러리 이다.
규칙에 어긋나는 코드가 있다면 commit을 강제로 거절한다.
이를 사용하기 위해서는 먼저 eslint 셋팅이 되어 있어야 한다.

먼저 husky와 lint-staged를 다운 받는다.
그리고 package.json 파일에 따로 설정을 해주어야 한다.

{
	...
	...
"devDependencies" : {
	...
	...
},
"husky": {
    "hooks": {
      "pre-commit" : "lint-staged"
    }
  },
"lint-staged": {
	"**/*.{ts,tsx}" : [
			"npx eslint ."
	  ]
	}
}

위와 같이 허스키를 이용해서 커밋하기 전에 lint-staged를 실행시키고, lint-staged에서 eslint 확인을 하여 코드 스타일을 확인하고 규칙에 맞지 않으면 커밋이 안되게 하는 방식이다.

이렇게 husky를 이용하면 실무적으로 조금 더 안정적인 협업을 진행 할 수 있게 된다.

참고 : husky 로 git hook 하자

profile
풀스택 진행중...

0개의 댓글