Nestjs应用程序的生产部署的正确方法是什么

时间:2018-12-27 04:55:48

标签: javascript node.js typescript deployment nestjs

我已经开发了简单的nestjs rest服务。现在,我计划部署我的应用程序。请为我提供有效的Nestjs应用程序生产部署方式。

2 个答案:

答案 0 :(得分:1)

自己的服务器

1)结帐项目的存储库中的服务器和运行在npm install

2)运行npm run build,它将您的项目编译为javascript:

rimraf dist && tsc -p tsconfig.build.json

3)使用以下命令启动您的应用程序:

node dist/main.js

无服务器

立即振奋

请参阅此answer

Heroku

1)将文件Procfile添加到项目的根目录:

web: npm run start:prod

2)将此行添加到您的package.json的{​​{1}}:

scripts

3)在"heroku-postbuild": "echo Skip builds on Heroku" (或main.ts)中设置端口

ConfigService

答案 1 :(得分:1)

如果您通过 nest new project-name 创建一个新的 NestJS 项目,它会在 package.json 中附带所需的脚本。

yarn build
yarn start:prod

其余的取决于您要托管应用程序的位置。 NestJS 将在任何通用主机(Heroku、Vercel、AWS 等)上运行。

如果您想开始使用低配置并且免费,您可以使用以下 Dockerized 设置尝试 Heroku:

Dockerfile.prod

FROM node:14-alpine

WORKDIR /app

COPY package.json yarn.lock ./
RUN yarn install

COPY . /app

RUN yarn build

heroku.yml

build:
  docker:
    web: Dockerfile.prod
run:
  web: yarn start:prod

应用创建后运行

heroku git:remote --app <app-name>
heroku stack:set container

在您的 bootstrap 函数 (main.ts) 中使用 PORT 环境变量:

await app.listen(process.env.PORT || 3000);

如果您使用的是数据库,则还必须进行设置。