gpt4 book ai didi

node.js - 将 NestJs 部署到 ElasticBeanstalk

转载 作者:行者123 更新时间:2023-12-03 12:12:50 25 4
gpt4 key购买 nike

我很惊讶缺乏展示如何部署 NestJS 应用程序的资源。我正在努力完成这项工作(解决这个问题后,我可能会写一篇文章来为标准用例提供教程)。

我有一个小型的标准 NestJS MVC 应用程序,我想将它托管在 aws Elastic Beanstalk 上(使用 CLI)。

我没有看到服务器启动的日志,而是日志显示:

May 12 11:01:01 ip-172-31-31-53 web: Error: Cannot find module '/var/app/current/dist/main'
May 12 11:01:01 ip-172-31-31-53 web: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
May 12 11:01:01 ip-172-31-31-53 web: at Function.Module._load (internal/modules/cjs/loader.js:862:27)
May 12 11:01:01 ip-172-31-31-53 web: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
May 12 11:01:01 ip-172-31-31-53 web: at internal/main/run_main_module.js:18:47 {
May 12 11:01:01 ip-172-31-31-53 web: code: 'MODULE_NOT_FOUND',
May 12 11:01:01 ip-172-31-31-53 web: requireStack: []
May 12 11:01:01 ip-172-31-31-53 web: }
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! code ELIFECYCLE
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! errno 1
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! hr-tool@0.0.1 start:prod: `node dist/main`
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! Exit status 1
May 12 11:01:01 ip-172-31-31-53 web: npm ERR!
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! Failed at the hr-tool@0.0.1 start:prod script.
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! A complete log of this run can be found in:
May 12 11:01:01 ip-172-31-31-53 web: npm ERR! /home/webapp/.npm/_logs/2020-05-12T11_01_01_151Z-debug.log

我怀疑这个问题可能是因为生产服务器上没有安装一些 TypeScript 开发依赖项,但我真的不知道如何解决这个问题

到目前为止我做了什么:

创建了一个 Procfile 来覆盖默认的 Node 命令 (Procfile):
web: npm run start:prod

更改了我的应用程序的端口 (main.ts)
  await app.listen(process.env.PORT || 3000);
console.log('server start on PORT' + process.env.PORT)
console.log(process.env.EMAIL_USER)

最佳答案

你的 main.ts 看起来不错!对于 node 命令,您可以从 beanstalk 配置屏幕中的 Container Options 更改其设置。

NestJS 的启动器有一个默认的工作 tsconfig.json,运行 tsc在安装了 TypeScript 的终端上。
运行 tsc将我们所有的 typescript 文件构建到 dist 文件夹中。应用程序入口点将在 dist/src/main.js 上。

您还需要将所有非 typescript 配置文件(包括 package.json)复制到 dist 文件夹中。

关于node.js - 将 NestJs 部署到 ElasticBeanstalk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61750496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com