Configuration des Pre-Commit Hooks
Ce que cela configure
- Husky pre-commit hook
- lint-staged exécutant Prettier sur tous les fichiers staged
- Configuration Prettier (si manquante)
- Scripts typecheck et test dans le pre-commit hook
Étapes
1. Détecter le gestionnaire de paquets
Vérifier la présence de package-lock.json (npm), pnpm-lock.yaml (pnpm), yarn.lock (yarn), bun.lockb (bun). Utiliser celui qui est présent. Par défaut npm si incertain.
2. Installer les dépendances
Installer en tant que devDependencies :
husky lint-staged prettier
3. Initialiser Husky
npx husky init
Cela crée le répertoire .husky/ et ajoute prepare: "husky" à package.json.
4. Créer .husky/pre-commit
Écrire ce fichier (pas de shebang nécessaire pour Husky v9+) :
npx lint-staged
npm run typecheck
npm run test
Adaptation : Remplacer npm par le gestionnaire de paquets détecté. Si le repo n'a pas de script typecheck ou test dans package.json, omettre ces lignes et informer l'utilisateur.
5. Créer .lintstagedrc
{
"*": "prettier --ignore-unknown --write"
}
6. Créer .prettierrc (si manquant)
Créer seulement si aucune configuration Prettier n'existe. Utiliser ces valeurs par défaut :
{
"useTabs": false,
"tabWidth": 2,
"printWidth": 80,
"singleQuote": false,
"trailingComma": "es5",
"semi": true,
"arrowParens": "always"
}
7. Vérifier
- [ ]
.husky/pre-commitexiste et est exécutable - [ ]
.lintstagedrcexiste - [ ] Le script
preparedans package.json est"husky" - [ ] La configuration
prettierexiste - [ ] Exécuter
npx lint-stagedpour vérifier que cela fonctionne
8. Commit
Staged tous les fichiers modifiés/créés et commit avec le message : Add pre-commit hooks (husky + lint-staged + prettier)
Cela exécutera les nouveaux pre-commit hooks — un bon test de vérification que tout fonctionne.
Notes
- Husky v9+ n'a pas besoin de shebangs dans les fichiers hook
prettier --ignore-unknownignore les fichiers que Prettier ne peut pas analyser (images, etc.)- Le pre-commit exécute d'abord lint-staged (rapide, staged uniquement), puis la vérification de type complète et les tests