협업에서의 순수악을 피하는 방법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 메시지를 컨벤션에 맞춰 적도록 강제하여 휴면에러를 최소화하기 위한 세팅을 하였다!

댓글남기기