Mejora la Estructura de tu Proyecto en Next.js con Barrel Files (index.ts)

Aprende cómo y por qué usar barrel files (index.ts) en tus proyectos Next.js para simplificar las importaciones, mejorar la escalabilidad y mantener un código limpio y modular.

May 4, 2025

Joan Sebastian Oviedo

Joan Sebastian Oviedo

Ingeniero Informático

Nextjs barrel files imagen

Mejora la Estructura de tu Proyecto en Next.js con Barrel Files (index.ts)

La organización del código en proyectos de Next.js puede ser clave para la escalabilidad y mantenibilidad. Una técnica muy efectiva que utilizan desarrolladores profesionales es el uso de barrel files, también conocidos como archivos index.ts. En este artículo aprenderás qué son, para qué sirven, sus beneficios y cómo implementarlos correctamente.

¿Qué es un Barrel File?

Un barrel file es un archivo index.ts que centraliza y reexporta múltiples componentes, funciones, tipos o cualquier otro recurso de una carpeta. Esto permite importar todo desde un solo lugar en lugar de hacerlo archivo por archivo.

Ejemplo:

Antes:

import { FormSkeleton } from "@/features/cotizaciones/components/form/FormSkeleton";
import { FormInputs } from "@/features/cotizaciones/components/form/FormInputs";

Después, usando un index.ts:

// form/index.ts export { FormSkeleton } from "./FormSkeleton";
export { FormInputs } from "./FormInputs";

Ahora puedes importar así:

import { FormSkeleton, FormInputs } from "@/features/cotizaciones/components/form";

Ventajas de Usar Barrel Files en Next.js

1. Importaciones Más Limpias y Legibles

Te permite evitar rutas largas y repetitivas, facilitando la lectura del código.

2. Encapsulación y Control de Acceso

Decides qué elementos de una carpeta deberían ser públicos. Todo lo que no se exporte en el index.ts queda privado.

3. Escalabilidad del Proyecto

A medida que el proyecto crece, tener index.ts por feature o componente facilita la navegación y organización del código.

4. Facilita Refactorizaciones

Si cambias de lugar un archivo, solo necesitas actualizar el import en el index.ts, sin tener que buscar y reemplazar en todo el proyecto.

5. Módulos Autocontenidos

Cada carpeta actúa como un "mini-paquete". Esto se alinea perfectamente con la arquitectura basada en features que recomienda Next.js.

Cuándo Usar Índices en Subcarpetas

Si tienes subcarpetas como form, lista, hooks, etc., es buena idea usar un index.ts dentro de cada una si contiene más de un archivo. Esto mejora la organización modular y permite escalar sin complicaciones.

Buenas Prácticas

  • Usa index.ts para exportar solo lo necesario.
  • No expongas implementaciones internas.
  • Nombra tus carpetas por funcionalidad: components, hooks, services, etc.
  • Reexporta en cadena si es necesario (subcarpetas -> carpeta -> feature).

Plantilla de Next.js con Barrel Files Integrados

Para facilitar aún más tu flujo de trabajo, hemos creado una plantilla de proyecto en Next.js que ya implementa una arquitectura basada en features con barrel files listos para usar. Esta plantilla incluye ejemplos de organización por dominio, estructura de carpetas limpia, y uso de index.ts en todos los niveles necesarios. Puedes encontrarla aquí:

🔗 Ver la plantilla en GitHub

Es ideal para comenzar nuevos proyectos o como base para migrar tus aplicaciones actuales a una arquitectura moderna y mantenible.

Conclusión

Los barrel files son una herramienta poderosa para organizar proyectos en Next.js de manera limpia, escalable y mantenible. Adoptarlos desde las primeras etapas de tu proyecto te ahorrará dolores de cabeza en el futuro y te dará una base sólida para crecer.

Implementa index.ts en tus features y componentes y notarás inmediatamente la mejora en claridad y fluidez del desarrollo.

Enviar mensaje por WhatsApp

Have a Project in Mind?

Let's discuss your ideas and bring them to life. Whether you're looking to build a website, web application, or digital experience, I'm here to help. Reach out to me today and let's get started!

LET'S TALK
Image 0Image 1Image 2Image 3Image 4Image 5Image 6Image 7Image 8Image 9
Image 0Image 1Image 2Image 3Image 4Image 5Image 6Image 7Image 8Image 9