发布于 2026-01-06 7 阅读
0

只需 2 分钟,即可使用 Zeit Now 将 NestJS 应用部署到云端!什么是 Zeit Now?设置 Zeit Now 配置 Zeit Now 以支持 NestJS Now.json 配置 构建和部署 NestJS 已部署到云端!完成!总结 由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

使用 Zeit Now,只需 2 分钟即可将 NestJS 应用部署到云端!

Zeit“现在”是什么?

准备工作

设置 Zeit Now

为 NestJS 配置 Zeit Now

现在.json 配置

构建与部署

NestJS 已部署到 ☁ !

就是这样!

综上所述

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

最初由Mark Pieszak发表于Trilon 博客


NestJS 生产环境部署系列:


我们想要达到什么目标?

在本文中,我们将探讨如何在短短几分钟内将NestJS应用程序部署到云平台Zeit Now !

请查看 NestJS + Zeit Now 的“Hello World”在线演示:
NestJS-Zeit.Now.sh。
您可以在这里

找到 GitHub 代码示例。

Zeit“现在”是什么?

Zeit Now是一个用于无服务器部署的云平台。
它极其简单易用,让您可以
即时部署从静态网站到服务器/无服务器应用程序的任何内容,并自动扩展,所有这一切都只需极少的配置。

这包括前端应用程序(Angular/React/Vue 等),或者您选择的任何后端——Go、Node.js、Python 以及介于两者之间的所有技术!

NestJS 毕竟是一个 Node.js 框架,那么我们如何才能利用像Now这样强大的云平台来部署我们的应用程序呢?

准备工作

注意:在本演示中,我们将展示一个由 CLI 生成的新的 NestJS 应用程序,但如果您更喜欢使用现有的 NestJS 应用程序,请随意跳过此步骤!

生成一个新的 NestJS 应用程序

为了演示目的,让我们确保已安装最新版本的 NestJS CLI,并创建一个新应用程序。

☁ npm i -g @nestjs/cli
☁ nest new PROJECT_NAME
Enter fullscreen mode Exit fullscreen mode

现在让我们cd进入新创建的目录并打开我们的IDE。此时,我们已经生成了一个简单的NestJS应用程序。

设置 Zeit Now

# Install the Now CLI
☁ npm i -g now
Enter fullscreen mode Exit fullscreen mode

请确保您已登录 Now CLI(或者在登录前创建一个帐户)。

☁ now login
# enter email & password
Enter fullscreen mode Exit fullscreen mode

太好了!我们已经有了一个“Hello World”的NestJS应用程序,现在设置完毕,接下来该做什么呢?


为 NestJS 配置 Zeit Now

通常情况下,使用Nownow进行部署就像在终端中输入命令一样简单。

但仅靠这一点还不足以满足我们的 NestJS 应用程序的需求。


现在可以通过文件(通常位于项目根目录)配置部署配置。now.json

现在.json 配置

通过这个now.json配置文件,我们可以控制部署的许多方面:

  • 部署/项目名称
  • 别名(例如:您的域名 URL)
  • 构建设置
  • 路由
  • 提供静态资源
  • 还有更多……

在应用程序的根目录下,创建一个now.json文件并添加以下 JSON 代码。

  • 注:您可以name将以下内容设置为您想要的任何值。
{
  "version": 2,
  "name": "nestjs-now",
  "builds": [
    {
      "src": "dist/main.js",
      "use": "@now/node"
    }
  ],
  "routes": [
    {
      "src": "/(.*)",
      "dest": "dist/main.js"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

这个配置的作用是什么?

  • 构建

    • 在这一行中"use": "@now/node",我们告诉 Now 构建器将该文件dist/main.js作为 Node.js 函数的入口点,构建其依赖项,并将它们打包到Lambda中。
    • 请记住,归根结底,NestJS 会编译成 JavaScript,并像标准的 Node.js 服务器一样运行。
    • NestJS 默认使用 Express 作为底层框架,但也可以选择切换到 Fastify。
    • 更多关于 @now/node 的信息请点击这里
  • 路线

    • 我们希望确保所有路由/(.*)都由我们在 NestJS 应用程序中设置的 API 路由处理,所以我们只是告诉 Now 我们的主文件在哪里。
    • 更多关于Now路线的信息请点击此处

构建与部署

现在一切就绪——让我们立即部署吧!

NestJS 是一个基于 TypeScript 的 Node.js 框架,所以我们需要确保将其构建为生产环境(通过npm run build),然后我们就可以让Now执行它的工作(通过now)!

☁ npm run build && now

# ---------------------
#    example output
# ---------------------

> zeit-now-nestjs@0.0.1 build /Users/Documents/Trilon/zeit-now-nestjs
> tsc -p tsconfig.build.json

> Deploying ~/Documents/Trilon/zeit-now-nestjs under trilon-io
> Using project nestjs-now
> Synced 2 files (462.27KB) [2s]
> https://nestjs-zeit.now.sh/ [v2] [928ms]
> Ready! Aliased to https://nestjs-zeit.now.sh/ [in clipboard] [43s]
Enter fullscreen mode Exit fullscreen mode

NestJS 已部署到 ☁ !

如果你看上面的内容(或者如果你正在跟着操作,就看终端),我们可以看到终端输出了一个网址!它已经自动复制到剪贴板了,所以打开浏览器看看吧!

“Hello World”以其所有神奇的魅力……

NestJS Zeit Now 部署示例

注意:检查页面本身,我们可以看到它实际上是由 Express 服务器提供的,就像默认的 NestJS 应用程序的设置一样!

就是这样!

只需几分钟和一个小型文件,我们就使用 Zeit Nowjson将我们的 NestJS 应用程序迁移到了云端


请查看 NestJS + Zeit Now 的“Hello World”在线演示:
NestJS-Zeit.Now.sh。
您可以在这里

找到 GitHub 代码示例。


综上所述

  • 现在,将我们的 NestJS 应用程序部署到云端变得更加简单。
  • 请确保脚本在部署前已构建好 NestJS 。
  • 配置now.json以支持 NestJS 构建。
  • 请理性享受阳光☁!
文章来源:https://dev.to/trilon/deploying-nestjs-apps-to-the-cloud-with-zeit-now-1jc4