Husky를 사용하여 Git Hook 만들기

git의 hooks는 git 실행 과정에서 특정 지점에서 실행할 수 있는 코드일 뿐입니다.

git 명령이나 작업을 실행하기 전이나 후에 모든 것이 예상대로인지 확인하는 데 사용됩니다. 일부 일반적인 애플리케이션에는 커밋 전 코드 서식 지정, 코드를 프로덕션으로 푸시하기 전에 빌드 단계 수행 등이 포함됩니다.
.git/hooks 디렉토리에 hooks을 만들 수 있지만 husky을 사용하여 프로세스를 자동화할 수 있습니다!

Prerequisites :- nodejs



허스키 설치




npm install husky --save-dev


Git 후크 초기화




npx husky install


이렇게 하면 프로젝트에 git hooks를 추가할 수 있습니다.

여기서 한 가지 유의할 점은 공동 작업 시 기여자는 git hooks를 활성화하기 위해 프로젝트를 복제한 후 이 명령을 실행해야 한다는 것입니다. 그러나 prepare 파일에 package.json 스크립트를 추가하여 이 단계를 건너뛸 수 있습니다.

프로젝트에서 npm install를 수행하면 실행되므로 수동으로 npx husky install를 수행할 필요가 없습니다.

이렇게 하려면 package.json에 다음 스크립트를 추가합니다.

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


그러나 또 다른 문제가 있습니다. prepare 스크립트도 프로덕션에서 실행되지만 프로덕션에서 필요하므로 프로덕션에서 비활성화하는 방법은 여러 가지가 있으며 그 중 하나는 is-ci npm 패키지를 사용하는 것입니다.

is-ci 패키지는 코드가 지속적 통합 서버에서 실행되는지 여부를 확인합니다.

npm install is-ci --save-dev


준비 스크립트를 다음과 같이 변경하십시오.

"scripts": {
    "prepare": "is-ci || husky install"
}


Git 후크 추가



예를 들어 코드를 커밋하기 전에 서식 지정 도구를 사용하여 코드 서식을 지정하려는 경우 다음 명령을 사용하여 git hook을 추가할 수 있습니다.

npx husky add .husky/pre-commit "npm run format"

npm run format를 코드 형식을 지정할 명령으로 바꿉니다.
pre-commit , pre-push , post-commit 등과 같은 다른 후크로 post-checkout 를 교체할 수 있습니다.

또 다른 예는 프로덕션으로 푸시하기 전에 minify javascript 원하는 경우 pre-push git hook을 사용할 수 있습니다.

npx husky add .husky/pre-push "npm run minjs"



"scripts": {
    "minjs": "terser js/app.js --compress --mangle --output js/app.min.js"
}


공식git hooks에서 다양한git site 목록을 찾아보세요.

프로젝트에 .husky 폴더가 생성되고 그 안에 생성한 모든 git hook에 대한 파일이 있을 것입니다.

변경한 후에는 git add를 실행해야 합니다. 마지막으로 git 명령 또는 작업을 실행하면 git hook이 실행됩니다.

그게 다야. git hooks의 더 많은 응용 프로그램은 read this article .

종료합니다.

This post was originally published in Syntackle.

좋은 웹페이지 즐겨찾기