cli Gratis Activo

commitlint

Para forzar un formato consistente en los mensajes de commit de un equipo.

Linter de mensajes de commit que valida el formato Conventional Commits.

Notas y contexto

Qué es

commitlint es una herramienta de línea de comandos que verifica que los mensajes de commit cumplan una convención, normalmente el estándar Conventional Commits (formato tipo(ámbito): asunto). Está escrita en TypeScript sobre Node.js, se distribuye como un monorepo de paquetes npm bajo el ecosistema conventional-changelog y se publica con licencia MIT. Lo inició marionebl y hoy es uno de los linters de commits más usados de la comunidad.

Para qué sirve

  • Validar que cada mensaje de commit sigue un formato acordado (feat, fix, chore, etc.).
  • Bloquear commits mal formados en local mediante hooks de Git como Husky.
  • Aplicar la misma convención en CI para todo el equipo.
  • Compartir reglas entre proyectos publicando configuraciones reutilizables en npm.

Cuándo usarlo

  • Cuando un equipo quiere mensajes de commit consistentes que alimenten changelogs automáticos y versionado semántico.
  • Encaja especialmente bien con semantic-release o standard-version, que generan releases a partir del historial.
  • Si solo necesitas reglas muy simples, un hook de Git casero puede bastar; commitlint aporta valor cuando quieres reglas configurables y compartibles.

Ejemplo

Instalación y configuración básica con la convención convencional:

npm install --save-dev @commitlint/cli @commitlint/config-conventional

echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.mjs

# Validar el último commit manualmente
npx commitlint --from HEAD~1 --to HEAD --verbose

# Validar el mensaje en un hook de Husky (.husky/commit-msg)
npx --no -- commitlint --edit $1

Puntos clave

  • Soporta múltiples formatos de configuración: commitlint.config.js/.mjs, .commitlintrc, .commitlintrc.json o el campo en package.json.
  • Reglas configurables y configuraciones compartibles distribuidas como paquetes npm.
  • Expone una API programática para integraciones a medida, además de la CLI.
  • Se integra con Husky para feedback inmediato y con pipelines de CI.

Ten en cuenta

  • Requiere Node.js LTS (>= 22.12.0) y git >= 2.13.2 en versiones recientes.
  • Con Node 24+ el archivo de configuración debe usar ESM (por ejemplo commitlint.config.mjs) o declarar el tipo de módulo en package.json.
  • Por sí solo no genera changelogs ni publica versiones: complementa, pero no sustituye, a herramientas como semantic-release.
Volver al directorio
Volver al directorio