Absortio

Email → Summary → Bookmark → Email

Introduction - Lefthook Documentation

Resumen

Resumen Principal

Lefthook se presenta como un avanzado gestor de Git hooks, diseñado para optimizar y automatizar las tareas rutinarias dentro del ciclo de desarrollo. Su función principal es facilitar la instalación y configuración de hooks tanto a nivel de proyecto como global, permitiendo a los desarrolladores integrar procesos de verificación y formateo de código directamente en sus flujos de trabajo de Git. A través de un archivo de configuración (lefthook.yml) sumamente detallado, es posible definir reglas específicas para distintos hooks. Un ejemplo paradigmático es el uso del hook pre-commit, donde Lefthook puede ejecutar automáticamente linters como stylelint y eslint. Esta capacidad elimina la necesidad de ejecutar manualmente estas herramientas, garantizando la consistencia y calidad del código antes de cada commit. La configuración permite ejecutar trabajos en paralelo (parallel: true) para mejorar la eficiencia y usar patrones glob ("*.css", *.ts") para dirigir los linters solo a los archivos relevantes. Además, la opción stage_fixed: true asegura que cualquier corrección aplicada automáticamente por los linters sea añadida al área de preparación antes del commit final, lo que consolida un proceso de entrega de código impecable y sin esfuerzo.

Elementos Clave

  • Gestión Eficiente de Git Hooks: Lefthook se posiciona como una herramienta esencial para la gestión de Git hooks, ofreciendo la flexibilidad de instalarse y configurarse tanto para un proyecto específico como de manera global. Esto permite estandarizar las prácticas de desarrollo y asegurar que ciertas acciones, como la validación de código, se ejecuten automáticamente en momentos clave del

Contenido

Introduction

Lefthook is a Git hooks manager. Here is how to

  • Install lefthook to your project or globally.

  • Configure lefthook.yml with detailed options explanation.

Example: Run your linters on pre-commit hook and forget about the routine.

# lefthook.yml

pre-commit:
  parallel: true
  jobs:
    - run: yarn run stylelint --fix {staged_files}
      glob: "*.css"
      stage_fixed: true

    - run: yarn run eslint --fix "{staged_files}"
      glob:
        - "*.ts"
        - "*.js"
        - "*.tsx"
        - "*.jsx"
      stage_fixed: true

Sponsored by Evil Martians