setup-pre-commit

Par mkurman · zorai

Configurez des hooks pre-commit Husky avec lint-staged (Prettier), la vérification des types et les tests dans le dépôt courant. À utiliser quand l'utilisateur souhaite ajouter des hooks pre-commit, configurer Husky, configurer lint-staged, ou ajouter du formatage/vérification de types/tests au moment du commit.

npx skills add https://github.com/mkurman/zorai --skill setup-pre-commit

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-commit existe et est exécutable
  • [ ] .lintstagedrc existe
  • [ ] Le script prepare dans package.json est "husky"
  • [ ] La configuration prettier existe
  • [ ] Exécuter npx lint-staged pour 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-unknown ignore 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

Skills similaires