prettier์ด๋ ESLint ์ค์ ์ธํ ํ๊ณ ๋ ผ์ํด๋ ํ์ ํ๋ช ์ด ๊ทธ๊ฑธ ์ ์ฉํ์ง ์๋๋ค๋ฉด..
๐ก **git๊ณผ ๊ด๋ จํ ์ด๋ค ์ด๋ฒคํธ**๊ฐ ๋ฐ์ํ์ ๋ ํน์ **์คํฌ๋ฆฝํธ๋ฅผ ์คํ**ํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ ex) commit, push โฆ์ ์ฑ ๋ค์ ๊ฐ์ ์ ์ผ๋ก ์งํค๋๋ก ํ๊ณ ์งํค์ง ์์ ๊ฒฝ์ฐ merge, push ๊ฐ์ ๊ณผ์ ์์ ์์ ์ค๋จํ๊ฒ ํ๋ git hook ํ์ฉ
- git hook ์ค์ ๋์์ฃผ๋ npm package
- ๋ฒ๊ฑฐ๋ก์ด git hook ์ค์ ํธ๋ฆฌ
- npm install ๊ณผ์ ์์ ์ฌ์ ์ ์ธํ ํ git hook์ ๋ค ์ ์ฉ ์ํฌ ์ ์์
- ๋ฐ๋ผ์ ๋ชจ๋ ํ์์ด git hook ์คํ์ด ๋๋๋ก ํ๊ธฐ๊ฐ ํธํจ
-
npm i husky --save-dev
-
npx husky install (์ฒ์ husky ์ธํ ํ๋ ์ฌ๋๋ง)
๐๐ป .husky ๋๋ ํ ๋ฆฌ ์์ฑ
-
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 .", }, }
๐๐ป ์ด ์คํฌ๋ฆฝํธ๋ฅผ ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์์ ๊ฐ๋ฅ
-
-
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๋ง ๋์ด์์