Webux Lab

Par Studio Webux

Husky

TG
Tommy Gingras Studio Webux S.E.N.C 2021-04-30

Introduction

Husky est un outil complet et facile à utiliser spécialisé pour les git hooks

Comment l’utiliser

Les commandes sont lancées avec Git Bash

À la racine de votre projet, lancer ce qui suit,

Il est très important de lancer la commande en utilisant le --save-dev pour seulement installer les packages suivant en mode développement. C’est important pour des raisons d’optimisation et de sécurité.

npm install --save-dev husky

Ensuite pour activer les git hooks

npx husky install

Configurer Husky

Votre package.json doit avoir ces nouvelles lignes:

{
  "devDependencies": {
    "husky": "^6.0.0",
    "lint-staged": "^10.5.4",
    "lerna": "^3.22.1"
  },
  "scripts": {
    "prepare": "husky install",
    "pre-commit": "lint-staged",
    "pre-push": "lerna run --parallel --since origin/develop test"
  },
  "lint-staged": {
    "packages/**/*.js": "eslint"
  }
}

Dans cet exemple, eslint est installé globalement.

Vous pouvez obtenir ce résultat avec cette commande : npm set-script prepare "husky install"

Ajouter des git hooks

Puis vous devez créer les fichiers dans le répertoire de .husky/

commit-lint

Avec le CLI : npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

Manuellement :

Créer un fichier nommé .husky/commit-msg:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx --no-install commitlint --edit $1
pre-commit

Avec le CLI : npx husky add .husky/pre-commit "npm run pre-commit"

Manuellement :

Créer un fichier nommé .husky/pre-commit:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run pre-commit
pre-push

Avec le CLI : npx husky add .husky/pre-push "npm run pre-push"

Manuellement :

Créer un fichier nommé .husky/pre-push:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npm run pre-push

Structure

.husky/
    _/
    .gitignore
    commit-msg
    pre-commit
    pre-push
commitlint.config.js
package.json
lerna.json
license.txt
README.md

Donc à partir de maintenant, les actions commit-msg, pre-commit and pre-push possèdent des hooks.

Comment ignorer les hooks

Vous pouvez tout simplement ajouter --no-verify à votre commande git.

par exemple,

git push origin feature/abc-123 --no-verify
git commit -m "fix: removed invalid code" --no-verify

Conclusion

Voir les articles suivants pour plus d’information:


Recherche