Lo Mejor de Laravel - Su integración Nativa con Node

Video thumbnail

Una de las características que más me gusta de Laravel es que por defecto viene integrado con Node.js. Esto significa que, en un solo proyecto, podemos tener:

  • Un excelente framework del lado del servidor (Laravel).
  • Node.js, que usualmente se emplea del lado del cliente (frontend).

Esto es especialmente útil en proyectos con Laravel + Inertia, donde podemos ver varios archivos clave:

  • package.json: archivos de Node.js que se generan al crear cualquier proyecto con Node.
  • composer.json: archivos de PHP manejados por Laravel, que controlan las dependencias del backend.

Si lo comparamos con otros frameworks web, como Django, Flask, FastAPI o CodeIgniter, todos son excelentes, pero no ofrecen esta integración nativa con Node.js.

Node y Laravel: la mejor combinación

Supongamos que quieres crear un proyecto completo con backend y frontend:

  • En frameworks como Django o Flask, necesitarías crear dos proyectos independientes:
    • El backend para la parte administrativa.
    • Un proyecto frontend en Vue, React o similar, que consuma la API del backend.

Esto implica mantener dos proyectos separados y comunicarlos mediante REST APIs o tecnologías similares.

Con Laravel + Node.js, puedes evitar esto, ya que ambos conviven en un solo proyecto, facilitando el desarrollo y la integración.

CDN: opción para pruebas

También existe la opción de usar la CDN de Vue o React, pero perderías muchas ventajas del ecosistema de Node, como:

  • Gestión de dependencias con NPM o Yarn.
  • Compilación y optimización de assets.
  • Uso de herramientas modernas de desarrollo frontend.

Por lo tanto, la CDN suele usarse solo para pruebas rápidas, no en proyectos serios.

Inertia.js: integración perfecta

Laravel ofrece integraciones como Inertia.js, que funciona como un envoltorio para usar Vue o React directamente desde Laravel. Esto permite:

  • Fusionar backend y frontend en un solo proyecto.
  • Evitar la necesidad de crear dos proyectos independientes.
  • Mantener la lógica del backend en Laravel y trabajar el frontend con Vue o React de manera natural.

Según mi experiencia, esta integración ha ganado fuerza a partir de Laravel 12, donde al crear un proyecto se pregunta si quieres usar:

  • Una instalación limpia de Laravel.
  • Laravel + React.
  • Laravel + Vue (con Inertia.js).

Con Inertia.js, se logra una integración perfecta, aunque también puedes optar por el enfoque tradicional con REST API, donde el backend y el frontend siguen proyectos separados pero comunicados mediante endpoints de API.

Ejemplo de integración

Con Inertia.js: Laravel devuelve un componente de Vue directamente desde el servidor usando Inertia::render().

En enfoque clásico: Laravel actúa como API, y Vue se consume mediante llamadas a los endpoints definidos en controladores agrupados, por ejemplo, en una carpeta API.

Esto demuestra la flexibilidad de Laravel: puedes elegir entre una integración completa en un solo proyecto o mantener un backend y frontend separados según tus necesidades.

Hablo sobre una característica UNICA de Laravel, como lo es la integración con Node de manera nativa y sus implicaciones.

Acepto recibir anuncios de interes sobre este Blog.

Andrés Cruz

EN In english