node.js - Angular Universal - 部署到 AWS Elastic Beanstalk

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

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

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

[ Dist folder[1]

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

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

sh: ng: command not found

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

最佳答案

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

首先,运行命令 npm run build:ssr为生产而 build 。

在 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 命令字段中,输入 node dist/yourProjectFolderName/server/main.js
就是这样!!保存并创建您的环境。你的应用程序现在可以工作了。 :-)

关于node.js - Angular Universal - 部署到 AWS Elastic Beanstalk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61515957/

相关文章:

amazon-web-services - 如何使用 Cloudformation 更改 LaunchConfig 设置?

Javascript 全局变量未在回调中修改

node.js - Mongoose,创造新模式

javascript - NodeJS : Comparing each element of an array with all other elements with an async process?

javascript - TypeError : client. getReceiver 不是 azure-iot-device-http 示例中的函数

angular2 - 在 observable 完成后导航

java - Amazon S3 Java SDK 和 Jackson 生产中的奇怪异常

javascript - Node js如何有前导句路径?

javascript - Angular 错误日志发送到elasticsearch

javascript - 切换按钮 - 显示/隐藏信息