ls-lint
Para imponer convenciones de nombres (kebab-case, camelCase, PascalCase...) en ficheros y carpetas de un proyecto.
Linter extremadamente rápido para nombres de ficheros y directorios.
Notas y contexto
Qué es
ls-lint es un linter extremadamente rápido para nombres de ficheros y directorios, creado por Lucas Löffel. Está escrito en Go, lo que le permite analizar miles de rutas en milisegundos, y se configura mediante un único fichero YAML (.ls-lint.yml). Funciona en Windows, macOS y Linux, con soporte completo para Unicode.
Para qué sirve
- Imponer una convención de nombres coherente (kebab-case, camelCase, PascalCase, snake_case, regex…) en todo el árbol de ficheros.
- Aplicar reglas distintas por extensión o por carpeta dentro del mismo proyecto.
- Detectar nombres que no cumplen el estándar dentro de un pipeline de CI antes de hacer merge.
- Mantener orden estructural en monorepos y proyectos grandes con muchos colaboradores.
Cuándo usarlo
Es ideal cuando el equipo quiere acordar una estructura de nombres y garantizar que se respeta de forma automática, sin depender de revisiones manuales. Complementa a linters de contenido como ESLint o Prettier, que no validan los nombres de los ficheros. Encaja bien en monorepos y proyectos con convenciones estrictas; para proyectos pequeños y personales puede resultar excesivo.
Ejemplo
Instalación vía NPM y ejecución:
npm install -D @ls-lint/ls-lint
npx ls-lint
Configuración en .ls-lint.yml:
ls:
packages/*/src:
.js: kebab-case
.ts: camelCase | PascalCase
ignore:
- node_modules
Puntos clave
- Escrito en Go: lint de miles de ficheros y directorios en milisegundos.
- Configuración declarativa en un solo
.ls-lint.yml, con reglas por carpeta y por extensión. - Distribución multiplataforma vía NPM, Homebrew, Docker, GitHub Actions y binarios directos.
- Soporta combinaciones de reglas, patrones regex, comprobaciones de existencia y Unicode completo.
Ten en cuenta
Valida únicamente nombres de ficheros y directorios, no el contenido del código, por lo que no sustituye a ESLint, Prettier ni a otros linters. La sintaxis del YAML con reglas combinadas tiene cierta curva de aprendizaje. El proyecto está activo y bajo licencia MIT, con versiones documentadas por rama (actual v2.3).