这是一个很好的例子。
{
"version": 2,
"name": "nestjs-now",
"builds": [
{
"src": "dist/main.js",
"use": "@now/node"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "dist/main.js"
}
]
}
我不知道是什么原因,也不知道如何修复。我只是按照vercel教程部署了我的nestjs后端项目,但没有工作。它包括GraphQL API和Rest API以及socket.io服务器。
3条答案
按热度按时间rggaifut1#
为什么不工作?
Vercel上的无服务器函数(目前)不接受函数代码的构建步骤。因此,任何需要“构建步骤”来生成服务器的后端框架都将无法工作。
Vercel最适合做什么?
前端部署和无服务器函数作为助手。应在其他地方部署完整的API。您可以检查以下资源:
我有哪些选择?
我建议您使用Heroku或Digital Ocean作为替代方案。
2021年11月11日更新
现在,您可以将任何带有SSR、API路由和Edge Functions(即将)的框架部署到Vercel。只需确保遵循File System API规范即可。
您可以阅读介绍部分了解更多信息。请记住,Vercel是一个针对前端部署进行优化的平台。
vwkv1x7d2#
问题是VERCEL在启动BUILD进程后立即查找DIST文件夹
您可以从
.gitignore
中删除DIST文件夹,这样就可以解决404之后,无论何时进行新的部署,都必须强制部署而不使用缓存来再次编译您的dist
zzlelutf3#
在您的生产 Jmeter 盘中,您会发现这个带有vercel function logs的按钮,在里面您可以找到您的应用程序出现故障的原因
但是,在我看来,崩溃的第一个错误是关于您的VERCEL.JSON文件:
当你在nestjs中构建一个无服务的应用程序时,你不会通过 dist/ 或 output/ 进行渲染,你必须从你的**src/**进行渲染,所以你的vercel.json必须如下所示:
您必须设置它with the documentation help调用您的API,就像它需要的那样。
下面的解决方案不适用于NESTJS/SWAGGER,因为它没有将SwaggerUIBundle发送到浏览器as in this image,但可以在here中找到相同问题的解决方案,只需使用C#中的swagger(如果是您的情况,您可以尝试将其调整为nestjs/swagger)
我打开这个是为了找到解决办法