使用 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
现在让我们cd进入新创建的目录并打开我们的IDE。此时,我们已经生成了一个简单的NestJS应用程序。
设置 Zeit Now
# Install the Now CLI
☁ npm i -g now
请确保您已登录 Now CLI(或者在登录前创建一个帐户)。
☁ now login
# enter email & password
太好了!我们已经有了一个“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"
}
]
}
这个配置的作用是什么?
-
构建
-
路线
- 我们希望确保所有路由
/(.*)都由我们在 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]
NestJS 已部署到 ☁ !
如果你看上面的内容(或者如果你正在跟着操作,就看终端),我们可以看到终端输出了一个网址!它已经自动复制到剪贴板了,所以打开浏览器看看吧!
“Hello World”以其所有神奇的魅力……
注意:检查页面本身,我们可以看到它实际上是由 Express 服务器提供的,就像默认的 NestJS 应用程序的设置一样!
就是这样!
只需几分钟和一个小型文件,我们就使用 Zeit Nowjson将我们的 NestJS 应用程序迁移到了云端!
请查看 NestJS + Zeit Now 的“Hello World”在线演示:
NestJS-Zeit.Now.sh。您可以在这里
找到 GitHub 代码示例。
综上所述
- 现在,将我们的 NestJS 应用程序部署到云端变得更加简单。
- 请确保脚本在部署前已构建好 NestJS 。
- 配置
now.json以支持 NestJS 构建。 - 请理性享受阳光☁!
