【问题标题】:Angular Universal - Deploying to AWS Elastic BeanstalkAngular Universal - 部署到 AWS Elastic Beanstalk
【发布时间】:2020-08-14 09:03:09
【问题描述】:

我已经尝试并失败了三天多来让这个工作,并且我对自己对这个主题缺乏了解越来越感到沮丧 - 所以这是我寻找我还没有找到的答案。

我正在使用 Angular 9.x 和 Angular Universal 9.x,但无法确定如何将其部署到服务器运行节点上的 Elastic Beanstalk。有零个教程解释了如何做到这一点,因为它们都针对那些想要在 AWS 上使用 Lambda 的人。如果有人能指出我正确的方向,那就太好了。我运行 npm run build:ssr --prod,并在我的 dist 文件夹中获取以下内容:

[

我已尝试通过上传压缩文件来部署此文件夹,并尝试使用我的整个应用程序 eb deploy - 但所有这些都会导致如下错误(对于 eb 部署方法)

> blush-front-end@0.0.0 start /var/app/current
> ng serve

sh: ng: command not found

有人能指点我正确的方向吗?

【问题讨论】:

  • 你有.extenstions 文件夹,你可以指定要安装的依赖项吗?
  • 不,我没有其中之一-您指的是以下内容吗? docs.aws.amazon.com/elasticbeanstalk/latest/dg/…
  • 是的。您可以指定项目需要安装在 EB 实例上的 packages
  • 我知道,但是我知道我的节点模块包含我需要的一切,因为我的 package.json 中有角度 CLI
  • 那么我在这里还需要什么额外的包?

标签: node.js angular amazon-web-services express angular-universal


【解决方案1】:

由于缺乏关于如何将 Angular Universal 部署到 AWS Elastic Beanstalk 的在线教程,我也苦苦挣扎了几个月。现在你会很高兴知道它是多么容易。

首先,运行命令npm run build:ssr 构建生产环境。

在 dist 文件夹中,您可能会找到一个带有您的项目名称的文件夹。在此文件夹中,您将找到一个“浏览器”文件夹和一个“服务器”文件夹。在“server”文件夹中,它是 main.js 文件。

您的设置可能略有不同,但在阅读我的整个答案后,您将能够根据您的情况调整此说明。

压缩 dist 文件夹。

现在让我们在 AWS Elastic Beanstalk 中配置环境。

1) 在 Elastic Beanstalk 中创建环境时,选择“Web 服务器环境”,然后在 Platform branch config 中选择最后一个选项:“Node.js running on 64bit Amazon Linux”。这是非常重要的一步,因为这是使您能够配置容器选项的唯一选项。

2) 在应用程序代码上,选择“上传您的代码”并上传您的 zip 文件。

3) 点击配置更多选项

4) 单击软件框上的编辑按钮。

5) 在节点命令字段中,输入node dist/yourProjectFolderName/server/main.js

就是这样!!保存并创建您的环境。您的应用程序现在可以运行了。 :-)

【讨论】:

  • 如果我能吻你,我会的。非常感谢!
  • 504 网关超时 nginx/1.16.1 ¿有什么想法吗?
  • 现在你在部署到EB服务器的文件中添加一个Procfile,内容应该和上面提到的Node命令字段一样,但前缀是web:所以web: node dist/yourProjectFolderName/server/main.js
猜你喜欢
  • 2015-09-20
  • 2018-12-07
  • 2020-03-24
  • 2020-08-02
  • 2014-12-25
  • 2018-04-21
  • 2014-12-16
  • 2017-04-11
  • 2015-12-15
相关资源
最近更新 更多