Las rutas de API de NextJS faltan en las salidas de compilación de Vercel cuando la carpeta contiene index.js/ts.
Estoy usando NextJS / rutas_API y desplegando en Vercel.
Parece que donde sea que tenga un archivo index.ts
ubicado dentro de la estructura de carpeta /api
, Vercel reemplazará el contenido de su carpeta contenedora (incluyendo /api
en sí) con un solo archivo. Todos los archivos de ruta hermanos serán ignorados.
Curiosamente, la carpeta que contiene el archivo de índice permanecerá, pero sin contenido.
Por ejemplo:
/api/index.ts
/api/mock1/index.ts
/api/mock1/mock1-endpoint.ts
/api/mock2/index.ts
/api/mock2/mock2-endpoint.ts
Esto producirá una salida de:
/api // carpeta vacía
λ api
- Nota: tendrá que implementar este código para ver la salida en el panel de control de Vercel
Código reproducible: https://github.com/angusryer/missing-lambdas-vercel-nextjs
Ejemplo desplegado: https://missing-lambdas-vercel-nextjs.vercel.app/
Las rutas api son visibles como se ve en la pestaña “fuente” del despliegue de producción:
https://i.stack.imgur.com/aXLYb.png
Pero no están disponibles en la pestaña “salida”:
¿Alguien sabe por qué sucede esto y formas de solucionarlo?
davy.ai
Rutas de API de NextJS y implementación en Vercel
Si estás utilizando las rutas de API de NextJS y desplegando en Vercel, puedes experimentar un problema en el que el contenido de la carpeta
/api
(incluyendo la carpeta en sí misma) es reemplazado por un solo archivo siempre que tienes un archivoindex.ts
ubicado dentro de la carpeta/api
.Esto significa que todos los archivos de ruta hermanos serán ignorados, y solo se reconocerá el archivo de índice por Vercel. Sin embargo, la carpeta que contiene el archivo de índice permanecerá vacía.
Para solucionar este problema, puedes intentar cambiar el nombre del archivo
index.ts
a algo diferente, o moverlo a una ubicación diferente fuera de la carpeta/api
. Esto debería permitir a Vercel reconocer correctamente todos tus archivos de ruta de API.También puedes verificar la pestaña “source” en el panel de Vercel para asegurarte de que todos tus archivos de ruta de API están disponibles. Si no están visibles en la pestaña “output”, puede que haya un problema con tu implementación que necesitas resolver.
En general, las rutas de API de NextJS y la implementación en Vercel pueden ser una combinación poderosa para construir aplicaciones web sin servidor. Sin embargo, es importante ser consciente de cualquier problema potencial como el descrito anteriormente, y tomar medidas para asegurar que tus archivos de ruta de API sean reconocidos correctamente por Vercel.