Angular Universal - 部署到 AWS Elastic Beanstalk

Sim*_*mer 2 amazon-web-services node.js express angular-universal angular

我已经尝试并失败了三天以上才能使其正常工作,并且我对自己对该主题缺乏了解而越来越感到沮丧 - 所以这是我对尚未找到的答案的搜索。

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

[Dist文件夹[1]

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

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

sh: ng: command not found
Run Code Online (Sandbox Code Playgroud)

有人可以指出我正确的方向吗?

小智 6

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

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

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

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

压缩 dist 文件夹。

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

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

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

3)点击配置更多选项

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

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

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

  • 现在,您将“Procfile”添加到部署到 EB 服务器的文件中,内容应与上面提到的 Node 命令字段相同,但前缀为“web:”,因此“web: node dist/yourProjectFolderName/server/main” .js` (2认同)