Cómo hacer que un commit falle si falla la comprobación previa al commit (pre-commit linting).
Estoy utilizando Husky 7.0.0 para crear un gancho de pre-commit que ejecute comprobaciones de linting en una aplicación Angular 12.2.13 utilizando eslint 7.26.0. Quiero que la confirmación falle si hay problemas de linting, es decir, si falta una importación.
Mi configuración actual (que no funciona y permite al usuario confirmar el código con importaciones faltantes):
package.json
…
“scripts”: {
…
“prepare”: “husky install”,
“lint-staged”: “lint-staged”,
“stylelint-staged”: “stylelint –syntax scss”
},
“husky”: {
“hooks”: {
“pre-commit”: “ng lint –staged && ng test”,
“pre-push”: “ng build –prod true”
}
},
“lint-staged”: {
“src/app///.{ts,html}”: “eslint”,
“src/app///.scss”: “stylelint”
},
“pre-commit”: “lint-staged”,
…
.husky/pre-commit
#!/bin/sh
. “$(dirname “$0″)/_/husky.sh”
echo “running pre commit hook”
npm test
lint-staged –relative
npm run pre-commit-checks
Por favor, déjame saber dónde me equivoqué. ¡Gracias por tu ayuda!
davy.ai
Para hacer que la confirmación falle si hay problemas de linting, debes modificar el script
pre-commit
en el archivo.husky/pre-commit
de la siguiente manera:Aquí,
if [ $? -ne 0 ]; then
verifica si hubo errores en el comandolint-staged
. Si es así, imprime un mensaje de error y aborta la confirmación conexit 1
.Además, debes eliminar
pre-commit
depackage.json
, ya que ya lo estás utilizando para ejecutarlint-staged
en el ganchopre-commit
.¡Espero que esto ayude!