Este template proporciona una base sólida para proyectos de 0, o ya hechos en NestJS con TypeScript, incluyendo herramientas que refuerzan buenas prácticas como los principios SOLID y código limpio.
- ✅ Estructura básica de proyecto NestJS
- ✅ ESLint con:
@typescript-eslinteslint-plugin-sonarjseslint-plugin-clean-code
- ✅ Prettier integrado
- ✅ Hooks de pre-commit con Husky y lint-staged
- Clona el repositorio o descarga el zip:
npx degit tu-usuario/nest-solid-template nombre-proyecto
cd nombre-proyecto
npm install
npx husky install- Haz tu primer commit para que se active Husky:
git init
git add .
git commit -m "chore: primera configuración"- Instala las dependencias:
npm install --save-dev \
eslint \
prettier \
husky \
lint-staged \
@typescript-eslint/eslint-plugin \
@typescript-eslint/parser \
eslint-plugin-sonarjs \
eslint-plugin-clean-code \
eslint-plugin-prettier \
eslint-config-prettier- Agrega los archivos de configuración:
.eslintrc.js.prettierrc.husky/pre-commit
Puedes copiar los archivos de este template o adaptarlos.
- Agrega los scripts en
package.json:
{
"scripts": {
"lint": "eslint . --ext .ts",
"format": "prettier --write ."
},
"lint-staged": {
"*.{ts,js}": [
"eslint --fix",
"prettier --write"
]
}
}- Inicializa Husky:
npx husky install- Verifica el hook:
El hook en .husky/pre-commit debe contener:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
echo "🔍 Corriendo ESLint y Prettier antes del commit..."
npx lint-staged- Mantén la arquitectura modular (por features)
- Aplica separación de capas (domain, infra, app, interfaces)
- Usa principios SOLID para tus servicios y controladores
- Usa DTOs para validación y tipado fuerte
npm run lint # Corre ESLint
npm run format # Formatea el código con Prettier