π Husky
Husky bu jamoa bilan ishlaydigan loyihalarda sifatni nazorat qilish, avtomatlashtirish va xatoliklarni kommit darajasida oldini olish uchun juda foydali.
Husky β bu Git hook lar bilan ishlaydigan vosita. U sizga quyidagilarni amalga oshirishga imkon beradi:
- Gitβga
commit,push,mergekabi amallar bajarilishidan oldin skript ishga tushirish, - Masalan,
eslint,prettier,tests,type-check, va boshqa amallarnigit commitdan oldin ishga tushirish.
Git hook nima?
Git hook β bu gitning ichki mexanizmi boβlib, siz ba'zi hodisalar (masalan, commit, push, merge) yuz berishidan oldin yoki keyin avtomatik kodlar ishlatishingizga imkon beradi.
Masalan:
pre-commitβ kommitdan oldinpre-pushβ pushdan oldincommit-msgβ kommit xabari tekshiriladi
Husky ana shu Git hook larni qulay tarzda sozlashga yordam beradi.
π Muammo:
- Dasturchilar
git commitvaqtida xatoliklarni eβtiborsiz qoldirishadi - Formatlanmagan, sinovdan oβtmagan kod
mainbranchga tushib qoladi
π Nima bu?
- Husky β bu Git hooklarni boshqarish uchun vosita (masalan,
pre-commit,pre-push) lint-stagedbilan birga ishlatilib, faqat oβzgargan fayllarni tekshirish mumkin
β Hal qiladigan muammo:
- Har bir commit yoki pushdan oldin avtomatik ESLint yoki Prettier ishlaydi
- Yomon kodni repoga tushishini oldini oladi
π οΈ Qanday ishlatiladi:
npm install --save-dev husky lint-staged
npx husky init
package.json:
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{js,ts}": ["eslint --fix", "prettier --write"]
}
- Yoki
.husky/pre-commitfayli:
npx lint-staged
π― Muhim jihatlar:
- Pre-push hooklar bilan testlar avtomatik bajarilishi mumkin
preparescript orqalihusky installni avtomatlashtirish mumkin
"scripts": {
"prepare": "husky install"
}
π’ Yutuqlari:
- β Kod sifatini avtomatik nazorat qiladi
- β Git hook lar orqali xatoliklarning oldini oladi
- β Jamoada intizomni kuchaytiradi
- β Kommit qilinadigan fayllarnigina tekshiradi (tezroq ishlaydi)
- β Prettier, ESLint, Testlar, TypeCheck larni avtomatik ishga tushiradi
π΄ Kamchiliklari:
- β Loyihada notoβgβri sozlansa, ishlashga xalaqit berishi mumkin
- β Har bir jamoa uchun sozlama individual boβlishi kerak
- β Ba'zida hook sekin ishlasa, developer gβashiga tegishi mumkin
πΉ Xulosa
Husky β bu loyihada kod sifatini saqlash uchun qat'iy tekshiruvlarni kommit yoki push jarayonida avtomatlashtiruvchi vosita. Ayniqsa, jamoaviy loyihalarda bu juda kerakli asbob.
