SkillByAIइंटरैक्टिव संस्करण खोलें →

पाठ 14 / 27

Pre-commit Hooks और Husky

Husky और lint-staged से खराब commits रोकें ताकि ESLint और Prettier केवल staged files पर चलें।

Husky workflow

Husky हर commit से पहले ESLint और Prettier चलाता है और खराब commits रोकता है। lint-staged गति के लिए इन tools को केवल staged files पर चलाता है।

Husky को सेट अप करना

Husky को install करें और commits से पहले lint करने के लिए pre-commit hook को configure करें।

npm install --save-dev husky lint-staged
npx husky init           # creates .husky/pre-commit and a prepare script

# .husky/pre-commit
npx lint-staged

# package.json
"lint-staged": {
  "*.{js,ts,tsx}": "eslint --fix",
  "*.{js,ts,tsx,json,md,css}": "prettier --write"
}

Output:

Husky and lint-staged configured

जब आवश्यक हो तो skip करें

Emergencies में hooks को bypass करने के लिए git commit --no-verify का उपयोग करें (e.g., hotfix)। लेकिन document करें कि क्यों और immediately बाद में fix करें।

त्वरित जाँच

त्वरित जाँच: lint-staged क्या करता है?

  • Repo में सभी files को lint करता है।
  • Files को स्वचालित रूप से stage करता है।
  • Node install करता है
  • केवल commit के लिए staged files पर linters को चलाता है।
Answer

केवल commit के लिए staged files पर linters को चलाता है। — lint-staged पूरे codebase की जांच न करके केवल changed files को check करके speed को improve करता है।