@quo-digital/eslint-config
v1.0.2
Published
Configuración ESLint Estandar para Quo Digital
Readme
@quo-digital/eslint-config
Configuración oficial y centralizada de ESLint para codigo basado en TypeScript.
Publicada en npm como: @quo-digital/eslint-config
🎯 Objetivo
Estandarizar las reglas de calidad de código para:
- Garantizar consistencia entre repositorios
- Reducir conflictos en Pull Requests
- Elevar la calidad técnica del código
- Centralizar la gobernanza técnica
- Facilitar la escalabilidad del equipo
Esta configuración es la única fuente de verdad para las reglas de ESLint en los las instancias backend y frontend en Typescript.
📦 Instalación
1️⃣ Instalar el package
En la aplicacion o proyecto:
npm install -D @quo-digital/eslint-config2️⃣ Instalar dependencias requeridas (si no existen)
Este package depende de los siguientes paquetes como devDependencies:
npm install -D \
eslint@^8 \
@typescript-eslint/parser@^8 \
@typescript-eslint/eslint-plugin@^8 \
eslint-plugin-sonarjs@^0.21.0 \
eslint-plugin-simple-import-sort \
eslint-plugin-unused-imports \
eslint-plugin-prettier \
eslint-config-prettier \
prettierPuedes verificar las dependencias requeridas con:
npm info @quo-digital/eslint-config peerDependencies⚙️ Configuración
Crear o reemplazar el archivo .eslintrc.js en el codigo con:
module.exports = {
root: true,
extends: ['@quo-digital/eslint-config'],
};⚠️ No agregar reglas locales salvo que exista una justificación técnica clara.
Toda modificación debe realizarse en el repositorio central.
📜 Scripts recomendados
Asegúrate de que el package.json de la instancia contenga:
{
"scripts": {
"lint": "eslint \"src/**/*.ts\" --fix",
"lint:check": "eslint \"src/**/*.ts\""
}
}🔌 Extensiones recomendadas para IDEs
Para una mejor experiencia de desarrollo con feedback en tiempo real de ESLint:
VS Code y Cursor
Ambos editores comparten el ecosistema de extensiones de VS Code. Instala:
| Extensión | ID | Descripción |
|-----------|-----|-------------|
| ESLint | dbaeumer.vscode-eslint | Integración oficial de ESLint |
| Prettier | esbenp.prettier-vscode | Formateo de código (requerido por esta config) |
# Instalación desde terminal (VS Code / Cursor)
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscodeO busca "ESLint" y "Prettier" en la vista de extensiones (Ctrl+Shift+X / Cmd+Shift+X).
WebStorm
ESLint viene integrado. Actívalo en:
Settings → Languages & Frameworks → JavaScript → Code Quality Tools → ESLint
- Marca Automatic ESLint configuration o apunta a tu
.eslintrc.js - Opcional: habilita Run eslint --fix on save
Claude Code
Claude Code se ejecuta como extensión sobre VS Code, por lo que usa las mismas extensiones:
- Instala ESLint (
dbaeumer.vscode-eslint) y Prettier (esbenp.prettier-vscode) - Las reglas se aplicarán automáticamente al editar código
🚀 Uso
Desarrollo local
npm run lintEste comando:
- Ejecuta ESLint
- Corrige automáticamente errores auto-fixables
- Ordena imports
- Elimina imports no usados
Validación (CI / Pull Requests)
npm run lint:checkEste comando:
- Solo valida
- No modifica archivos
- Falla si existen errores
- Debe ejecutarse en el pipeline de CI/CD
📐 Reglas principales incluidas
TypeScript
- Reglas recomendadas oficiales
@typescript-eslint/consistent-type-imports- No obliga
explicit-function-return-type(decisión pragmática para NestJS)
Clean Code
- Eliminación automática de imports no usados
- Orden obligatorio de imports
- Control de complejidad cognitiva (sonarjs)
Buenas prácticas
console.logprohibido- Permitido
console.warnyconsole.error - Integración completa con Prettier
🏗️ Migración en aplicativos existentes
Instalar el package
Configurar
.eslintrc.jsEjecutar:
npm run lintCorregir errores no auto-fixables
Validar con:
npm run lint:check
🔐 Requisitos
- Node 18+
- ESLint 8.x
- TypeScript 5.x
🔄 Versionado
Este package sigue versionado semántico:
- MAJOR → cambios breaking en reglas
- MINOR → nuevas reglas no breaking
- PATCH → ajustes internos
Actualizar en una instancia de node:
npm update @quo-digital/eslint-configInstalar versión específica:
npm install -D @quo-digital/[email protected]🧠 Gobernanza Técnica
Cualquier modificación en las reglas debe:
- Justificarse técnicamente
- Evaluar impacto en todos las aplicaciones
- Versionarse correctamente
- Documentarse
Esta configuración es el estándar oficial para backend y frontend basados en Typescript.
