No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Deployment a Vercel

26/27
Recursos

¿Qué es Vercel y cómo beneficia al despliegue de APIs?

Vercel es una poderosa plataforma diseñada para facilitar el despliegue y la gestión de aplicaciones. Es especialmente popular en proyectos frontend, pero también permite integrar y desplegar APIs en backend, haciendo posible un flujo de desarrollo más ágil y eficiente. Una de sus mayores ventajas es la capacidad de automatizar el ciclo de integración y despliegue directamente desde el repositorio de código fuente, lo que se traduce en que cualquier cambio en la rama principal del repositorio puede llevar a un nuevo deployment sin necesidad de ejecutar comandos manuales.

¿Cómo crear una cuenta en Vercel?

Para comenzar a usar Vercel, necesitarás crear una cuenta. Puedes iniciar sesión o registrarte de las siguientes maneras:

  • Con una cuenta existente de GitHub, GitLab o Bitbucket, lo cual es recomendable para integrar directamente con tu repositorio.
  • Utilizando un correo electrónico y contraseña.

¿Cómo desplegar una API con Vercel?

  1. Login en Vercel: Accede a tu cuenta en Vercel y vincula tu repositorio de GitHub, seleccionando el proyecto que deseas desplegar.

  2. Configurar el entorno de trabajo: Vercel requiere que el código productivo resida en la rama principal (main o master). Asegúrate de mover todo el código necesario a esa rama y realizar un merge si es necesario.

    git checkout main
    git merge rama19
    
  3. Agregar el proyecto: Vercel te permitirá seleccionar el framework correcto para tu proyecto. Aunque está más orientado al frontend, se pueden desplegar aplicaciones backend como aquellas desarrolladas en Express.js.

¿Cómo preparar tu proyecto para Vercel?

  • Organizar la estructura de archivos: Vercel solicita que las APIs estén dentro de una carpeta específica llamada /api. Todos los archivos de servicios y middlewares deben moverse allí.

    mkdir api
    mv index.js api/
    
  • Modificar las rutas en el package.json: Si has cambiado la ubicación de tus archivos, actualiza las rutas en los scripts de inicio y desarrollo.

  • Configuraciones de endpoints: Es necesario prefijar las rutas con /api para cumplir con los requisitos de Vercel.

    // Rutas previamente configuradas
    app.use('/api/v1', productRoutes);
    
  • Leer el puerto desde una variable de entorno, asegurando la buena práctica para adaptarse a múltiples plataformas.

¿Cómo configurar vercel.json?

Este archivo define cómo Vercel gestionará tu aplicación. Un aspecto crucial es redirigir el tráfico correctamentemente para que funcione como un backend:

{
  "rewrites": [
    {
      "source": "/(.*)",
      "destination": "/api/$1"
    }
  ]
}

¿Cómo realizar el despliegue?

Una vez completados los ajustes, solo necesitas hacer commit a la rama principal, ya que Vercel detectará el cambio y gestionará el despliegue automáticamente:

git add .
git commit -m "deploy"
git push origin main

Podrás observar el proceso completo de despliegue desde la consola de Vercel, verificando que todo esté listo y funcionando.

¿Qué esperar después del despliegue?

Con tu API ahora en producción, se genera una URL donde esta es accesible. Asegúrate de probar cada endpoint y verificar que todas las funciones respondan adecuadamente. Además, puedes reemplazar el dominio generado por Vercel por uno personalizado para una presentación más profesional.

Con los conocimientos sobre Heroku y Vercel, ya posees herramientas robustas para el despliegue y la administración de tus APIs en producción. ¡Sigue perfeccionando tus habilidades y explorando nuevas tecnologías para mantenerte siempre a la vanguardia!

Aportes 31

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Tuve un problema con los limites de Vercel, al inicio pense que era por el numero de endpoints finales, pero solo configuré el archivo vercel.json quedó así:

{
  "rewrites": [
    {
      "source": "/api/(.*)",
      "destination": "/api"
    }
  ],
  "builds": [
    {
      "src": "/api/index.js",
      "use": "@now/node"
    }
  ]
}

Aca mi API y acá mi repositorio .

Es segunda vez que hago este curso y la vez anterior no tenía esta clase. Gracias por mantener la calidad y los cursos actualizados. Ahora iré a hacer deploy en mi cuenta de Vercel. Excelente 😼

Martes 20-02-2024: tener en cuenta por si les aparece un error. 1. vercel.json: ```js { "rewrites": [ { "source": "/api/(.*)", "destination": "/api" } ], "builds": [ { "src": "/api/index.js", "use": "@now/node" } ] } ```2. npm install @hapi/[email protected]. 3.module.exports = app; (al final de api/index.js)
Me salía el error de "Function\_Invocation\_Failed" al intentar acceder al servidor a través del dominio que da Vercel en el navegador. Me di cuenta que esto ocurre por un bug en la versión 10.0.1 de @hapi/boom. Lo que hice fue hacer un downgrade de esa versión a la versión que se utiliza en el curso (npm i @hapi/[email protected]). Además, en la documentación de Vercel pone que hay que hacer un module.exports = app al final del index.js que tenemos en la carpeta api. Con estos cambios debería funcionar. Documentación Vercel: <https://vercel.com/guides/using-express-with-vercel> Espero les sirva!

GRACIAS!!! NICO, por actualizar el curso!! gracias Platzi

Prrrooooooooofff eres un chido!

Después de batallar un poco se logró, deben tener en cuenta que es posible que tengan que cambiar algunas rutas al mover las carpetas (esto se comprueba corriendo en local). Y también tuve que ajustar la referencia en el `package.json`. Además, actualmente el ajuste en `vercel.json` está obsoleto, del comentario de Alejandro Chavez, hay que cambiar el `"@now/node"` por `"@vercel/node"`
Y yo no tengo ni un commit, como que la rama 19 ajajajaaj
Que bien que actualicen con clases así ahora que heroku ya no es gratis
{ "version": 2, "rewrites": \[{ "source": "/(.\*)", "destination": "/api" }] } Esta es la configuración recomendada del archivo vercel,json marcada por vercel! me funciono para hacer el deploy!

ami no me funciono ni heroku ni vercel pero despues de buscar por todo internet porfin me funciono una : fl0

mi backend en render

El problema es la white list el profesor no nos explico bien como configurarlo en vercel.
[store-express-eight.vercel.app/api/v1/products](https://store-express-eight.vercel.app/api/v1/products)
Ganial el curso, pero no me funciono el despliegue en Vercel. Arroja un error 500 al momento de modificar los endpoints. Segui todo los pasos del cursos. Las consultas con Insomnia funcionan perfectamente. ![](https://static.platzi.com/media/user_upload/error-a8a5a515-717b-4b3b-bf6a-041398da67c6.jpg) <https://curso-node-api-rest-express.vercel.app/api/v1/products> cuando ejecuto npm run dev, tambien funciona correctamente. ![](https://static.platzi.com/media/user_upload/final-d25a8992-4738-43fe-b5c2-60cfaaeeb7e2.jpg)
Genialllll, se siente bien al obtener este primer resultado. Ahora a seguir practiando, gracias teacher. :)

Vercel también es otra alternativa a Heroku. Nos permite lograr algo muy interesante en nuestro flujo de desarrollo, y es que nos permite unificar todo el ciclo de integración y despliegue a través del mismo repositorio, lo que nos evita tener que unirnos a vercel o sus servidores para correr comandos de despliegue. En cambio, lo que hace vercel es mantenerce leyendo la rama master del proyecto. Inmediatamente hacemos un nuevo commit, genera un despliegue a producción de forma automática.

Excelente aporte ya que en el video anterior se tuvo que improvisar con otra herramienta de despliegue (lo cual es bueno porque se debe estar preparado para este tipo de cosas)

Muchas gracias por la alternativa a Heroku ❤

El archivo vercel.json lo tengo configurado así y todo funciona perfecto ```js { "version": 2, "builds": [ { "src": "index.js", "use": "@vercel/node" } ], "routes": [ { "src": "/api/(.*)", "dest": "/index.js" } ] } ```
![]()![](<"C:\Users\kraxu\Pictures\Screenshots\Captura de pantalla 2025-03-08 194111.png">)
Gente así me funcionó a mi: 1 - asegurate de que el vercel.json esta bien escrito, en mi caso lo habia escrito con "s" jajaj. ```js { "version": 2, "builds": [ { "src": "index.js", "use": "@vercel/node" } ], "routes": [ { "src": "/(.*)", "dest": "/" } ] } ```2 - deje el index.js en la raíz del proyecto. ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202025-03-08%20194111-7dcaa7b7-0c84-4118-af01-10a5452bcb14.jpg)
Esto ya no se hace así, por eso Platzi debería verificar bien que cursos y partes se están haciendo o ya son obsoletas
hoy 20/01/25 intento hacer el deploy y me sale: **04**: NOT\_FOUNDCode: `NOT_FOUND`ID: `gru1::xlbrv-1737381588394-a7b76c53d5c2` mi vercel.json {  "version": 2,  "rewrites": \[    {      "source": "api/(.\*)",      "destination": "/api"    }  ],  "builds": \[    {      "src": "api/index.js",      "use": "@vercel/node"    }  ]}
Railway tambien es una buena opcion para desplegar de manera sencilla <https://railway.app/> tiene una capa gratuita muy funcional
Que buen curso 10/10

10/10 !!!

muy buen profe!! muchas gracias amigooo

Que excelente solución y gracias profe por la actualización, justamente me encanta Vercel por la facilidad de subir mis aplicaciones realizadas en Next.js y conjuntamente con esta forma de subir el backEnd de la api puedo tener toda la solución ahí mismo. Tremendo curso, de los mejores de Platzi sin duda 😃

Gracias,gracias,gracias por esta clase. Por eso Platzi vale la pena!!!