환경세팅

husky를 이용하여 commit convention으로 커밋을 찍히게 해보자.

썽연 2022. 7. 13. 19:07
728x90

Commit-msg를 지정해서 관리해보자

깃허브에 커밋컨벤션이 있는데,

허스키를이용하면 커밋 컨벤션이 맞지 않을 경우 커밋을 취소하게 만들어볼 수 있다.

npx husky add .husky/commit-msg 'yarn commitlint --edit $1'

터미널에 위 코드를 입력해도 되지만

직접 .husky 폴더에 commit-msg 파일을 만들어도된다.

#!/usr/bin/env sh
#.husky/_/commit-msg
. "$(dirname -- "$0")/_/husky.sh"

yarn commitlint --edit $1

패키지 설치

yarn add --dev @commitlint/config-conventional @commitlint/cli

위 코드를 이용하여 패키지를 설치하자

#.commitlintrc.json
{
  "extends": ["@commitlint/config-conventional"],
}

위 Json파일을 만든 후, @commitlint/config-conventional 의 컨벤션을 따르겠다는 문구를 추가하자.

여기서! setting같은 경우는 위의 커밋컨벤션에 지정이 안되어있다.

원하는 컨벤션으로 지정해주기 위해선 rules를 추가해주면 된다.

{
  "extends": ["@commitlint/config-conventional"],
  "rules": {
    "type-enum": [
      2,
      "always",
      ["feat", "fix", "docs", "style", "refactor", "test", "revert", "setting"]
    ]
  }
}

위 코드처럼 rules에 컨벤션을 추가하면 된다.

커밋 컨벤션이 지켜지지 않을 경우 아래처럼 에러를 뱉어 커밋이 찍히지 않을 것이다.

 


나는 여기서 처음에, .commitlintrc.config.ts 파일로 하였더니

Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.

에 관한 에러가 떳다.

lint에서 js파일로 하라는 내용이다.

이 부분을 ts로 허용을 해주어야한다.

나는 json으로 변경을 해주었다.

728x90