2.8 KiB
ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ
::: code-group
npm install --save-dev husky
pnpm add --save-dev husky
yarn add --dev husky
# ΠΠΎΠ±Π°Π²ΠΈΡΡ pinst Π’ΠΠΠ¬ΠΠ Π΅ΡΠ»ΠΈ Π²Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΌ
yarn add --dev pinst
bun add --dev husky
:::
husky init (ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ)
ΠΠΎΠΌΠ°Π½Π΄Π° init ΡΠΏΡΠΎΡΠ°Π΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΡ husky Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ½Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΡΠΈΠΏΡ pre-commit Π² .husky/ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΊΡΠΈΠΏΡ prepare Π² package.json. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅ΡΡΠΈ ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π²Π°ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ.
::: code-group
npx husky init
pnpm exec husky init
# ΠΠ·-Π·Π° ΠΎΡΠΎΠ±ΡΡ
ΠΎΠ³ΠΎΠ²ΠΎΡΠΎΠΊ ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²,
# ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ Β«ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΒ».
bunx husky init
:::
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅
ΠΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Git hook Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ π. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ:
git commit -m "Keep calm and commit"
# ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠ²...
Π‘ΠΊΡΠΈΠΏΡΠΈΠ½Π³
Π₯ΠΎΡΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ npm run ΠΈΠ»ΠΈ npx Π² ΡΠ²ΠΎΠΈΡ
Ρ
ΡΠΊΠ°Ρ
, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ POSIX Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ
ΡΠ°Π±ΠΎΡΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ½ΡΠΈΠ½Π³ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ ΠΈ Π±Π΅Π· Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
# .husky/pre-commit
prettier $(git diff --cached --name-only --diff-filter=ACMR | sed 's| |\\ |g') --write --ignore-unknown
git update-index --again
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ, Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ lint-staged, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠΊΠΎΠ²
Husky Π½Π΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Ρ
ΡΠΊΠΈ Git. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ (HUSKY=0) ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΡ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ. Π‘ΠΌ. ΡΠ°Π·Π΄Π΅Π» ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.