Cuando has terminado de desarrollar una aplicación con Vue, evitar que se quede solo en tu computadora es esencial para compartirla con el mundo. Lanzar una aplicación a producción puede parecer intimidante, especialmente para aquellos sin experiencia previa. Vamos a desglosar el proceso, explorando los pasos clave desde el desarrollo hasta el despliegue de tu aplicación optimizada.
¿Qué diferencias existen entre el entorno de desarrollo y producción?
En el mundo de la tecnología, se trabaja principalmente con dos entornos: el de desarrollo y el de producción.
Entorno de desarrollo: Aquí es donde ocurre la magia inicial. Los desarrolladores trabajan con un servidor especial que permite realizar modificaciones y pruebas fácilmente. Por eso, a menudo se escucha la frase "en mi máquina sí funciona". Sin embargo, este código suele no estar optimizado para los usuarios finales.
Entorno de producción: Este es el escenario donde tu aplicación interactúa con los usuarios finales. La aplicación debe ser óptima, segura y rápida, lo cual requiere un proceso de build para preparar todos los archivos para su distribución.
¿Cómo optimizar y preparar los archivos de tu aplicación?
La optimización de tu aplicación es un paso necesario antes de ponerla a disposición de los usuarios. Vite es una herramienta poderosa que simplifica este proceso. Al ejecutar el comando npm run build en tu terminal, Vite realiza un proceso de optimización detallado:
npm run build
Archivos de salida: Todos los recursos se organizan en una carpeta llamada dist. Esto incluye un archivo index.html, CSS y JavaScript optimizado y minificado.
Minificación: El JavaScript y CSS se minifican automáticamente para mejorar el rendimiento del navegador. También se añade un hash a los archivos para evitar problemas con el caché del navegador.
¿Cómo funciona la carpeta public en tu proyecto?
La carpeta public es crucial para manejar archivos estáticos. Al ejecutar el proceso de build, cualquier archivo en public se transfiere a dist, permitiéndote incluir imágenes, fuentes personalizadas y otros recursos estáticos sin duplicaciones innecesarias.
¿Cómo correr un servidor web para tu aplicación?
Una vez que tienes tus archivos listos en la carpeta dist, necesitas un servidor web para ejecutarlos. Puedes utilizar servidores web como Nginx o Apache, pero en este caso, vamos a utilizar la herramienta HTTP server de Node.js. Los pasos son:
Instalación global de HTTP server:
npminstall -g http-server
Ejecutar el servidor:
http-server dist
Este comando levanta un servidor local en el puerto 8080, proporcionando una vista previa de cómo se ejecutaría tu aplicación en un entorno de producción.
¿Qué más necesitas para llevar tu aplicación a la web?
Aunque ejecutar el servidor localmente es un gran paso, aún hay más que hacer para poner tu aplicación en internet:
Servidores y alojamiento: Considerar servicios como Amazon, Google Cloud, o servidores más simples para montar tu aplicación.
Certificados SSL: Para garantizar que tu aplicación funcione de manera segura bajo HTTPS.
Servicios serverless: Alternativamente, plataformas como Netlify, GitHub Pages, o Vercel ofrecen formas simplificadas de desplegar aplicaciones sin necesidad de preocuparse por la infraestructura.
La transición de una aplicación Vue del entorno de desarrollo al de producción puede parecer abrumadora, pero con las herramientas adecuadas y los pasos correctos, tu aplicación estará lista para el público global. Explora más sobre los servicios mencionados y elige el mejor para tu proyecto. ¡Sigue aprendiendo y experimenta hasta dominar completamente la implementación de aplicaciones!
La diferencia entre desarrollo y producción radica en su propósito y configuración.
Desarrollo: Se utiliza para crear y probar la aplicación. Aquí, se pueden aplicar cambios rápidamente, ya que se cuenta con herramientas como el hot reloading, lo que facilita la depuración.
Producción: Es el entorno final donde la aplicación es accesible para los usuarios. El código está optimizado (minificado y compilado), asegurando un rendimiento eficiente y la gestión adecuada del caché del navegador. Este entorno es más seguro y estable, diseñado para manejar tráfico real.
Comprender estas diferencias es crucial al desplegar aplicaciones.
Hola CHicos. Además de Netlify y GitHub Pages, existen muchos otros servicios de nube excelentes para desplegar una Single Page Application (SPA) hecha con Vue.js.
La clave para desplegar una SPA (que son solo archivos HTML, CSS y JavaScript estáticos) es usar servicios diseñados para alojamiento estático o distribución global de contenido (CDN).
Aquí tienes otras opciones populares y cómo podrías usar los servicios de AWS que es tsn genial en la nube favorita:
Servicios de Alojamiento Estático y PaaS
Estos servicios son los competidores directos de Netlify y ofrecen flujos de trabajo de integración continua (CI/CD) muy sencillos.
Vercel:
Ideal para: Proyectos modernos de frontend (Vue, React, Next.js).
Ventaja: Ofrece un rendimiento extremadamente rápido con una CDN global y una integración con repositorios Git tan simple como la de Netlify. Es famoso por sus despliegues instantáneos.
Firebase Hosting (Google):
Ideal para: Proyectos que ya usan otros servicios de Firebase (Autenticación, Base de Datos Firestore).
Ventaja: Despliegue con un solo comando (firebase deploy), CDN rápida y soporte para múltiples sitios y dominios. Es la opción más popular dentro del ecosistema de Google.
Cloudflare Pages:
Ideal para: Velocidad y rendimiento global.
Ventaja: Utiliza la red CDN masiva de Cloudflare, ofreciendo despliegues muy rápidos y funciones de borde (Edge Functions) si alguna vez necesitas lógica serverless ligera.
AWS es totalmente capaz de alojar tu SPA de Vue.js, y tienes varias formas de hacerlo. La más eficiente es la opción de almacenamiento estático.
1. Opción Recomendada: Amazon S3 + CloudFront (El Estándar de la Industria)
Esta es la forma más común, barata y escalable de alojar cualquier SPA estática en AWS.
Amazon S3 (Simple Storage Service):
Se utiliza para almacenar tus archivos compilados (index.html, assets/, dist/).
Configuras tu Bucket S3 para Alojamiento de sitios web estáticos. Esto lo convierte en un servidor web básico.
Ventaja: Es extremadamente barato, altamente duradero y escalable.
Amazon CloudFront (CDN):
Se utiliza para distribuir tu sitio a través de la red global de Amazon, ofreciendo bajas latencias a usuarios en todo el mundo.
Configuras CloudFront para usar tu Bucket S3 como origen.
Ventaja: Máxima velocidad, seguridad (SSL/HTTPS gratuito) y rendimiento a nivel mundial.
Tambien se puede configurar un Dominio perosnalizado de nobmre propio en AWS Route 53 para una mejor version web con DNS:
AWS S3 + CloudFrontIaaS / CDNMáxima escalabilidad y costo-eficiencia en AWS.Intermedio (requiere configuración).
Si quieres ver como tu proyecto de Vue se ve en producción ya existe un comando para hacerlo, claro, antes debemos hacer build para ejecutar este comando.
npm run preview
preview es un scrip que ya viene en el package.json del proyecto entre otros scrips: