Skip to content

Files

Latest commit

Jan 13, 2024
2da2fb3 ยท Jan 13, 2024

History

History
62 lines (40 loc) ยท 1.92 KB

husky.md

File metadata and controls

62 lines (40 loc) ยท 1.92 KB

husky

prettier์ด๋‚˜ ESLint ์„ค์ • ์„ธํŒ…ํ•˜๊ณ  ๋…ผ์˜ํ•ด๋„ ํŒ€์› ํ•œ๋ช…์ด ๊ทธ๊ฑธ ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด..

์ •์ฑ…๋“ค์„ ๊ฐ•์ œ์ ์œผ๋กœ ์ง€ํ‚ค๋„๋ก ํ•˜๊ณ  ์ง€ํ‚ค์ง€ ์•Š์„ ๊ฒฝ์šฐ merge, push ๊ฐ™์€ ๊ณผ์ •์—์„œ ์ž‘์—… ์ค‘๋‹จํ•˜๊ฒŒ ํ•˜๋Š” git hook ํ™œ์šฉ

git hookโ”

๐Ÿ’ก **git๊ณผ ๊ด€๋ จํ•œ ์–ด๋–ค ์ด๋ฒคํŠธ**๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ํŠน์ • **์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰**ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ ex) commit, push โ€ฆ

Huskyโ”

  • git hook ์„ค์ • ๋„์™€์ฃผ๋Š” npm package
  • ๋ฒˆ๊ฑฐ๋กœ์šด git hook ์„ค์ • ํŽธ๋ฆฌ
  • npm install ๊ณผ์ •์—์„œ ์‚ฌ์ „์— ์„ธํŒ…ํ•œ git hook์„ ๋‹ค ์ ์šฉ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ
  • ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํŒ€์›์ด git hook ์‹คํ–‰์ด ๋˜๋„๋ก ํ•˜๊ธฐ๊ฐ€ ํŽธํ•จ

์„ค์น˜ ๋ฐ ์ ์šฉ ๐Ÿ”Œ

  1. npm i husky --save-dev

  2. npx husky install (์ฒ˜์Œ husky ์„ธํŒ…ํ•˜๋Š” ์‚ฌ๋žŒ๋งŒ)

    ๐Ÿ‘‰๐Ÿป .husky ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ

  3. package.json์— script๋ฌธ ์ถ”๊ฐ€

    • ์ดํ›„์— clone ๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์€ npm install ํ›„ ์ž๋™์œผ๋กœ husky install์ด ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์„ค์ •

    • prettier --cache --write ., eslint --cache .

      โ†’ ๋ชจ๋“  ํŒŒ์ผ ๊ฒ€์‚ฌํ•˜์ง€๋งŒ ์ด๋ฏธ ๊ฒ€์‚ฌํ•œ ํŒŒ์ผ์ด๋‚˜ ํ•ญ๋ชฉ์„ cache์— ์ €์žฅํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์—†์œผ๋ฉด ํ•ด๋‹น ํŒŒ์ผ ๊ฒ€์‚ฌ x

      โ†’ ๋”ฐ๋ผ์„œ ์‹คํ–‰ ์†๋„ ๋น ๋ฆ„

    • npm run format, npm run lint ๋ช…๋ น์–ด ํ†ตํ•ด ์ข€ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก package.json ์Šคํฌ๋ฆฝํŠธ ๋ฌธ์— ์ถ”๊ฐ€

    // Example
    {
    	"scripts": {
    		"postinstall": "husky install",
    		"format": "prettier --cache --write .",
    		"lint": "eslint --cache .",
    	},
    }

    ๐Ÿ‘‰๐Ÿป ์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ˆ˜์ • ๊ฐ€๋Šฅ

  4. pre-commit, pre-push hook ์ถ”๊ฐ€

    npx husky add .husky/pre-commit โ€œnpm run formatโ€

    npx husky add .husky/pre-push โ€œnpm run lintโ€

    • DMS์—์„  pre-commit๋งŒ ๋˜์–ด์žˆ์Œ