순수악이 되지말자2!(husky로 pre-commit, commit-msg setting)
협업에서의 순수악을 피하는 방법Permalink
협업을 하면서 일부로가 아닌 자기도 모르게 실수 하는 경우들이 있다.
예를들면
*eslint를 안 지킨다던가,eslint를 안 지킨다던가,eslint를 안 지킨다던가, prettier를 안 지킨다던가, commit msg를 자기 마음대로 쓴다던가,…*
이런 순수악을 피하기 위해서 husky 를통해 git hook을 사용해 commit전에 검사를 강제하였다.
pre-commitPermalink
commit을 하기전에 eslint는 잘 지켜졌는가, prettier는 잘 적용됬는가를 확인하도록 강제하였다.
// package.json
"lint-staged": {
"*.{ts,tsx}": [
"prettier --write",
"eslint --fix"
],
"*.{css,json,html}": "prettier --write"
},
.husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "lint-staged 진행중..."
yarn lint-staged
commit-msgPermalink
commit시에 작성하는 msg에도 우리가 정한 컨벤션대로 작성되었는가 검사를 진행하고 컨벤션에 맞춰서 작성하도록 강제하였다.
// commitlint.config.js
module.exports = {
extends: ["@commitlint/config-conventional"],
rules: {
"header-max-length": [2, "always", 100],
"type-case": [2, "always", "lowerCase"], // type 소문자로만
"type-empty": [2, "never"], // type 생략 불가
"type-enum": [
// 아래의 type 만 사용 가능
2,
"always",
[
"init",
"feat",
"fix",
"refactor",
"style",
"chore",
"remove",
"docs",
"modify",
],
],
"subject-case": [0],
"subject-empty": [2, "never"], // subject 생략 불가
},
};
.husky/commit-msg
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "commitlint 진행중..."
yarn commitlint "$1"
이를 통해 commit을 하기전 prettier, eslint 검사를 강제적으로 하게 되었고, commit 메시지를 컨벤션에 맞춰 적도록 강제하여 휴면에러를 최소화하기 위한 세팅을 하였다!
댓글남기기