npm i huskycommitlintcommit 규칙commit 규칙 설정하기husky library

Husky 설정을 활용한 Commit 규칙 설정하기, CommitLint

KUKJIN LEE
KUKJIN LEE
2024년 2월 21일
187

Husky를 이용한 Commit 메시지 규칙 설정 방법입니다. 이 프로세스는 프로젝트의 Commit 메시지가 일관되고 명확하게 유지되도록 도와주며, 협업 시 팀원 간의 이해도를 높일 수 있습니다.

1. 필요한 패키지 설치

Husky, @commitlint/cli, @commitlint/config-conventional을 설치하여 Git 훅을 관리하고 Commit 메시지가 Conventional Commits 규칙을 따르는지 검사합니다.

 

npm install husky @commitlint/cli @commitlint/config-conventional --save-dev

 

  • husky: Git 훅을 쉽게 관리할 수 있게 해주는 도구입니다.

  • @commitlint/cli@commitlint/config-conventional: Commit message가 Conventional Commits 규칙을 따르는지 검사하는 도구입니다.

 

2. commitlint 설정

최상위 경로에 commitlint.config.js 파일을 생성하여 기본 규칙을 설정합니다.

 

module.exports = {
  extends: ["@commitlint/config-conventional"],
  rules: {
    "type-enum": [
      2,
      "always",
      ["feat", "fix", "docs", "style", "refactor", "test", "chore"],
    ],
  },
};

// We have to discussion about commit rule. (Commit rule에 대한 의논이 필요합니다.)
// feat: 새로운 기능, 페이지 추가
// fix: 버그 수정
// docs: 문서 수정
// style: css 스타일, 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
// refactor: 코드 리펙토링, 효율화
// test: 테스트 코드, 리펙토링 테스트 코드 추가
// chore: 빌드 업무 수정, 패키지 매니저 수정

 

3. Husky 활성화 및 Commit 메시지 hook 설정

Husky를 활성화하고, Commit 메시지가 발생할 때마다 commitlint로 메시지를 검사하는 hook을 추가합니다.

 

npx husky install
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

 

4. package.json에 Husky 스크립트 추가

다른 개발자가 프로젝트를 Clone할 때 Husky가 자동으로 설치되도록 설정합니다.

 

"scripts": {
  "prepare": "husky install"
}

 

5. Commit 메시지 테스트

  1. Commit 메시지 규칙이 제대로 작동하는지 테스트합니다.

    • 규칙에 벗어난 메시지로 시도해보고 오류 메시지가 표시되는지 확인합니다.

    • 규칙을 준수하는 메시지로 커밋하여 정상 작동하는지 확인합니다.

 

※ 주요 Commit 규칙

Commit rule에 대한 의논은 필요합니다. 많이 사용하는 Commit rule을 개인적으로 변경한 내용입니다.

(style의 경우, css 스타일도 포함 시켰습니다.)

  • feat: 새로운 기능, 페이지 추가

  • fix: 버그 수정

  • docs: 문서 수정

  • style: css 스타일, 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우

  • refactor: 코드 리펙토링, 효율화

  • test: 테스트 코드, 리펙토링 테스트 코드 추가

  • chore: 빌드 업무 수정, 패키지 매니저 수정

※ 문제 발생 시 해결 방안

  1. commitlint 작동에 문제가 있다면, npx husky install을 실행하여 다시 설정합니다.

  2. Husky Pre-commit Hook 설정을 위해 .husky/commit-msg 파일을 생성하여 commitlint를 트리거합니다.
    (최상위 경로, 파일 탐색기에서 가장 위로 올라가보세요.)

관련 글

axios 사용자라면 반드시 읽어야 할 긴급 경고

이번에 정말 충격적인 사건이 터졌습니다. 전 세계에서 가장 많이 쓰이는 HTTP 클라이언트 라이브러리 axios가 npm 공급망 공격을 당했습니다. 이번 공격은 단순한 버그가 아니라, maintainer 계정을 해킹해 악성 버전을 직접 배포한 전형적인 Supply ...

2026년 4월 2일12

Next.js 언어 번역 라이브러리 선택 가이드

웹 서비스 글로벌 진출이 보편화되면서, 국제화(i18n) 관련 라이브러리가 많이 출시됐습니다. 많이 사용되고, 커뮤니티에서 평가가 좋은 언어 번역 라이브러리를 정리했습니다. 인기 번역 라이브러리 1. react-i18next 설명 : React 프로젝트에서 가장 널리 ...

2025년 7월 1일269

가볍고 유연한 React 아이콘 라이브러리 lucide-react

lucide-react 는 React 애플리케이션에서 SVG 아이콘을 손쉽게 사용할 수 있도록 지원하는 라이브러리 입니다. 인기 있는 Feather 아이콘을 기반으로 제작되었으며, 1000개 이상의 일관성 있는 디자인의 아이콘을 제공합니다. 또한 실제 프로젝트에서 사용...

2025년 6월 16일226

Java 이미지 최적화 라이브러리 Thumbnailator

Thumbnailator 소개 Thumbnailator는 Java 기반의 간편하고 강력한 이미지 처리 라이브러리로, 특히 이미지 리사이징 및 썸네일 제작에 최적화되어 있습니다. 직관적인 API로 빠른 개발이 가능하며, 다양한 이미지 형식을 지원합니다. 주요 특징 간결하...

2025년 6월 11일221