繁体   English   中英

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

[英]What is the right way of production deployment of nestjs application

我开发了简单的 nestjs 休息服务。 现在我正计划部署我的应用程序。 请帮助我高效地部署 nestjs 应用程序。

自己的服务器

1) 在你的服务器上检查你的项目的存储库并运行npm install

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

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

3) 开始你的申请:

node dist/main.js

无服务器

现在时代

看到这个答案

英雄库

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

web: npm run start:prod

2) 将此行添加到您的package.jsonscripts中:

"heroku-postbuild": "echo Skip builds on Heroku"

3) 在您的main.ts中设置端口(或在您的ConfigService中)

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

如果您通过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 env var:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM