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.