पाठ 14 / 25

Pre-commit Hooks और Husky

Pre-commit hooks का उपयोग करके खराब कोड को commit किए जाने से रोकें।

Husky workflow

Husky commit से पहले ESLint और Prettier को चलाता है, खराब commits को block करता है। lint-staged speed के लिए केवल changed files पर linters को चलाता है।

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

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

npm install --save-dev husky lint-staged
npx husky install

# Add to package.json:
"lint-staged": {
  "*.js": "eslint --fix",
  "*.{js,json,md}": "prettier --write"
}

# Create .husky/pre-commit
npx husky add .husky/pre-commit "npx lint-staged"

Output:

Husky and lint-staged configured

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

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

त्वरित जाँच

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

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

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