NodeJs에서 프로처럼 커밋하기: 후크

무엇과 왜 Git hooks?



Git 후크는 Git이 커밋, 푸시 및 수신과 같은 이벤트 전후에 로컬에서 실행하는 스크립트입니다.

이러한 후크는 bash 스크립팅을 통해 완전히 프로그래밍할 수 있습니다. 수행할 수 있는 작업의 예:
  • pre-commit: 프로젝트 코딩 표준을 시행합니다.
  • 사전 푸시: 테스트를 실행합니다.

  • 이를 통해 우리는 정확한 시간에 정확한 일을 커밋하고 있는지 확인할 수 있습니다. 잊을 수 있는 수동 프로세스로 작업을 수행하는 정신적 부하 때문에 코드를 위반하지 않습니다.

    시작하는 방법



    허스키 추가



    Husky.husky/ 디렉토리의 후크에 대한 개별 파일을 사용하여 구성된 JavaScript를 사용하여 Git 후크를 허용하는 도구입니다.

    husky를 설치하는 가장 빠른 방법은 husky로 프로젝트를 빠르게 초기화하는 일회성 명령인 husky-init 를 사용하는 것입니다.

    npx husky-init && npm install       # npm
    npx husky-init && yarn              # Yarn 1
    yarn dlx husky-init --yarn2 && yarn # Yarn 2+
    pnpm dlx husky-init && pnpm install # pnpm
    


    허스키를 설정하고, package.json을 수정하고, 편집할 수 있는 샘플 사전 커밋 후크를 생성합니다. 기본적으로 커밋하면 테스트가 실행됩니다.

    다른 후크를 추가하려면 husky add 를 사용하십시오.
    husky-init를 사용하는 것이 불편하면 다른 옵션here을 찾을 수 있습니다.

    린트 스테이지 추가



    Husky는 매우 유용하지만 기본적으로 git로 실행되며 커밋하려는 파일뿐만 아니라 모든 파일에 대한 bash 스크립트의 명령에 초점을 맞추지 않습니다.

    Lint Staged이 이 문제를 해결하는 것으로 보입니다. 패턴과 일치하는 준비된 git 파일에 대해 프로세스를 실행할 수 있습니다.



    로컬 프로젝트에 추가하여 lint-staged를 설치합니다.

    npm install lint-staged --save-dev
    yarn add lint-staged -D 
    


    package.json에서 스크립트( "lint-staged": "lint-staged", )로 추가하고 pre-commit 후크를 통해 참조하십시오. Husky를 사용하는 경우 다음 콘텐츠와 함께 .husky/pre-commit에서 찾을 수 있습니다.

    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"
    
    yarn lint-staged
    


    configure lint-staged에는 여러 가지 방법이 있습니다. 그 중 하나는 프로젝트 루트 폴더에 lint-staged.config.js 파일이 있습니다. 이 파일에서 어떤 유형의 파일에 대해 어떤 프로세스를 실행하고 싶은지 표현할 수 있습니다. 예를 들어:

    module.exports = {
      '*.{ts,tsx}': [() => 'yarn tsc:check', 'yarn format', 'yarn lint:fix', 'yarn test', 'git add .'],
    };
    


    이전 스니핑은 현재 커밋에 고정된 스테이지 파일을 추가하기 전에 컴파일러 검사, 서식 지정, 린팅 및 테스트를 실행합니다.

    결론



    이 두 도구를 사용하여 이제 CI/CD 시스템과 유사한 검사를 통과하는 코드를 푸시할 것입니다.

    좋은 웹페이지 즐겨찾기