Estructura de Archivos y Directorios en Next.js

¿Cómo esta constituida la estructura de archivos y directorios de un proyecto en Next.js?

La estructura de un proyecto en Next consta de:

Carpetas de nivel superior

Directorio Descripción
app App Router
pages Pages Router
public Archivos estáticos.
src Directorio con el código de la aplicación.

Archivos de nivel superior

Los archivos son utilizados para: configurar la aplicación, manejar las dependencias, ejecutar el middleware, integrar y monitorear herramientas y definir variables de entorno.

Archivo Descripción
next.config.js Configuración de Next.js
package.json Dependencias y scripts del proyecto
instrumentation.ts Archivos de OpenTelemetry e Instrumentation
middleware.ts Middleware de Next.js
.env Variables de entorno
.env.local Variables de entorno locales
.env.production Variables de entorno de producción
.env.development Variables de entorno de desarrollo
.eslintrc.json Configuración de ESLint
.gitignore Archivos de git a ignorar
next-env.d.ts Configuración de TypeScript para el proyecto
tsconfig.json Configuración general de TypeScript
jsconfig.json Configuración general de JavaScript

Convenciones utilizadas en “app”

Las siguientes convenciones han sido definidas para manejar los metadatos en el app router.

Archivos de enrutamiento

Archivo Descripción
layout.tsx Layout
page.tsx Page (Página)
loading.tsx Interfaz de la precarga
not-found.tsx Interfaz de “no encontrado”
error.tsx Interfaz de mensaje de error
global-error.tsx Interfaz de error global
route.ts Enpoint de la API
template.tsx Plantilla
default.tsx Página default

Rutas anidadas

Ruta Descripción
directorio-a Segmento de una ruta
directorio-a/directorio-b Segmentos de rutas anidados

Rutas dinámicas

Ruta Descripción
[directorio] /directorio
[…directorio] Captura de todos los segmentos de la ruta
[[…directorio]] Captura opcional de todos los segmentos de la ruta

Grupos de rutas y directorios privados

Estructura Descripción
(folder) Grupos de rutas que no afectan el enrutamiento
_folder Excluye la carpeta y las carpetas que contiene del enrutamiento

Rutas paralelas e interceptadas

Ruta Descripción
@folder Slot
(.)folder Intercepción al mismo nivel
(..)folder Intercepción un nivel arriba
(..)(..)folder Intercepción tres niveles arriba
(…)folder Intercepción en el directorio raiz (root)

Convenciiones de archivos Metadata

Iconos de la aplicación

El archivo favicon.ico es un pequeño icono asociado a un sitio web que aparece en la pestaña del navegador, marcadores y otros lugares. Mejora la identificación visual del sitio y la experiencia del usuario al facilitar el reconocimiento rápido del sitio web.

El archivo apple-icon.png es utilizado para definir el icono de la aplicación en dispositivos Apple. Este icono aparece en la pantalla de inicio cuando los usuarios añaden la web como acceso directo, mejorando la identificación visual y la experiencia del usuario.

Icono Extensión Descripción
favicon .ico Archivo favicon
icon .ico .jpg .jpeg .png .svg App Icon File
icon .js .ts .tsx Generated App Icon
apple-icon .jpg .jpeg .png Apple App Icon file
apple-icon .js .ts .tsx Generated Apple App Icon

Open Graph e imágenes de Twitter

Open Graph es un protocolo que permite a las páginas web controlar cómo se presentan sus enlaces cuando se comparten en redes sociales. Define metadatos como el título, la descripción y la imagen, mejorando la apariencia y la información mostrada en las publicaciones.

Twitter-image es una convención utilizada para definir las imágenes que se mostrarán cuando un enlace de la página web se comparta en Twitter. Estas imágenes pueden ser archivos estáticos con extensiones como .jpg, .jpeg, .png, y .gif, o pueden ser generadas dinámicamente utilizando archivos .js, .ts, o .tsx. Al especificar una imagen de Twitter, se mejora la presentación visual del enlace compartido, atrayendo más atención y clics en la publicación.

Convención Extensión Descripción
opengraph-image .jpg .jpeg .png .gif Open Graph image file
opengraph-image .js .ts .tsx Generated Open Graph image
twitter-image .jpg .jpeg .png .gif Twitter image file
twitter-image .js .ts .tsx Generated Twitter image

SEO

SEO (Search Engine Optimization) es el proceso de optimizar un sitio web para mejorar su visibilidad en los motores de búsqueda. Esto incluye el uso de palabras clave, metadatos y contenido de calidad para aumentar el tráfico orgánico y mejorar el ranking en los resultados de búsqueda.

El archivo sitemap.xml es un mapa del sitio web que ayuda a los motores de búsqueda a indexar sus páginas de manera más eficiente. Contiene una lista de URLs del sitio, facilitando la detección y rastreo de contenido relevante para mejorar el SEO.

El archivo robots.txt se utiliza para indicar a los motores de búsqueda qué páginas o secciones de un sitio web deben o no deben rastrear. Esto ayuda a controlar la indexación y a proteger áreas sensibles del sitio, mejorando la eficiencia del rastreo.

Archivo Extensión Descripción
sitemap .xml Sitemap file
sitemap .js .ts Generated Sitemap
robots .txt Robots file
robots .js .ts Generated Robots file

Conclusiones

La estructura de archivos y directorios en Next.js es fundamental para organizar y configurar adecuadamente un proyecto. Conocer las convenciones y configuraciones esenciales permite desarrollar aplicaciones más eficientes y mantenibles, facilitando la colaboración y el escalado del proyecto.

Otros Artículos