首页  >  文章  >  web前端  >  使用 Vercel 和 Supabase 部署 NestJS 应用程序

使用 Vercel 和 Supabase 部署 NestJS 应用程序

DDD
DDD原创
2024-10-26 05:37:02721浏览

了解部署到 Vercel 非常简单,但是,在部署过程中需要考虑一些设置。

先决条件

  • NestJS项目在开发环境中与PostgreSQL本地连接并正常工作
  • 用于部署的 Vercel 帐户
  • Supabase 帐户(我们将在这里设置 PostgreSQL 数据库)

考虑到您的 NestJS 应用程序已准备好部署,让我们从 Supabase 设置开始。

苏帕基账户

Supabase 是一个开源 Firebase 替代方案,完全支持和无缝配置 PostgreSQL 数据库,并且还提供身份验证、存储等附加功能。

在 Supabase 上设置一个新帐户并在该帐户中创建一个新项目。

Deploying NestJS Application using Vercel and Supabase

设置完成后,单击主页页面上的连接按钮。这将向您展示将数据库连接到您的项目的不同选项

Deploying NestJS Application using Vercel and Supabase

使用提供的凭据在本地测试连接,以确保一切正常运行。

注意:确保凭据不会暴露并存储在您的 .env 文件中(我相信您已经知道这一点?)

接下来,让我们设置 Vercel 帐户并部署项目

韦尔塞尔

通常,Vercel 主要用于前端应用程序部署,但是,它也可以用于部署后端项目。

PS:如果您正在开发中型到大型后端部署项目,请改用合适的服务提供商。

在您的 Vercel 帐户上,创建一个新项目并连接到您的 Git 存储库。导入您的 .env 文件并单击 部署 按钮。

Deploying NestJS Application using Vercel and Supabase

瞧,就是这样???。
...

可能遇到的常见问题

# 错误:没有名为“public”的输出目录

Deploying NestJS Application using Vercel and Supabase

这是一个常见错误,因为 Vercel 在构建过程中需要知道您的输出目录。要解决此问题,只需添加 versel.json 文件并复制以下内容:

{
  "version": 2,

  "builds": [
    {
      "src": "src/main.ts",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "src/main.ts",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
} 

再次运行部署即可

...

# 错误:此无服务器函数已崩溃

Deploying NestJS Application using Vercel and Supabase

就我而言,这是因为找不到模块错误

Deploying NestJS Application using Vercel and Supabase

...
有几种方法可以解决这个问题:

方法1(用相对路径替换所有导入)

来自

{
  "version": 2,

  "builds": [
    {
      "src": "src/main.ts",
      "use": "@vercel/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "src/main.ts",
      "methods": ["GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"]
    }
  ]
} 


import { UsersService } from 'src/users/users.service';

...

方法 2(修改 vercel.json 文件和 .gitignore 文件)

我最终采用了这种方法,因为我不需要将我的应用程序限制为仅使用相对路径导入。

因此,将 vercel.json 修改为这个

import { UsersService } from '../users/users.service';

转到您的 .gitignore 文件并删除 /dist.

运行新的部署即可。

编码愉快! ?

以上是使用 Vercel 和 Supabase 部署 NestJS 应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn