es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , , , ,

Answer

  1. Avatar for 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:

    #!/bin/sh
    . "$(dirname "$0")/_/husky.sh"
    
    echo "ejecutando el gancho de pre-commit"
    npm test
    lint-staged --relative
    if [ $? -ne 0 ]; then
      echo "Se encontraron problemas de linting. Abortando la confirmación."
      exit 1
    fi
    

    Aquí, if [ $? -ne 0 ]; then verifica si hubo errores en el comando lint-staged. Si es así, imprime un mensaje de error y aborta la confirmación con exit 1.

    Además, debes eliminar pre-commit de package.json, ya que ya lo estás utilizando para ejecutar lint-staged en el gancho pre-commit.

    ¡Espero que esto ayude!

Comments are closed.