angular - 使用 Elastic Beanstalk AWS 部署 Angular 6 Universal

标签 angular amazon-web-services typescript amazon-elastic-beanstalk angular-universal

我正在 AWS 上开发 Angular 6 Universal。我的网站托管在 AWS 上,并使用 Elastic Beanstalk 进行部署。

我的 Angular 6 Universal 应用程序是使用 @ng-toolkit/universal 使用 Angular CLI 创建的,它会自动在应用程序中添加所需的服务器配置。

我在部署时遇到了问题。我的部署总是失败。我不知道如何部署已编译的 Angular 的生产版本以及 Nodejs 服务器文件。我用谷歌搜索,但找不到合适的解决方案。

我所做的步骤:

  1. ng new my-app --routing
  2. ng add @ng-toolkit/universal
  3. 是否需要对几个文件进行更改
  4. 运行命令来编译生产版本并生成服务器文件
  5. /dist 使用浏览器和服务器版本创建的文件夹

文件夹结构如下所示:

folder structure

我尝试将 /dist 部署到服务器但失败。我尝试使用 Typescript 部署整个根文件夹,但仍然失败。

我终于找到了问题所在,并创建了这个线程,以便它可以帮助其他人。

最佳答案

Elastic Beanstalk 默认情况下会尝试先运行 Server.js 文件(如果找不到),然后运行 ​​app.js(如果找不到),然后运行命令 <强>“npm启动”

所以有两种解决方案

  1. 文件local.js(由@ng-toolkit创建)运行nodejs服务器。因此,您可以将其重命名为 server.jsapp.js,以便 EB 在成功部署后执行它,然后使用 将整个根文件夹部署到您的服务器“eb 部署” 命令。
  2. 或者将 local.js 复制到 /dist 文件夹并将其重命名为 app.js/server.js 并编辑该文件以更改目录 “./server_filename”

// generated by @ng-toolkit/universal
    const port = process.env.PORT || 8080;
    
    const server = require('./_server'); <!-- Renamed to _server -->
    
    server.app.listen(port, () => {
        console.log("Listening on: http://localhost:" + port );
    });

最后也是重要的一步。

  1. Elastic beanstalk 部署失败并在安装 @ng-toolkit 时引发错误。由于@ng-toolkit/universal 处于测试阶段,因此可能存在错误。
  2. 因此,打开package.json文件并从依赖项<中移动“@ng-toolkit/universal”:/em>devDepedcies

就是这样!现在部署,您的应用程序应该可以运行。如果您遇到任何问题或此部署的其他最佳实践,请告诉我。

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

相关文章:

javascript - 将 Angular 4 升级到 Angular 5,安装包失败

amazon-web-services - 为什么 Kube 服务没有将 SSL 证书附加到 AWS NLB?

Angular 5 - 动态地为特定元素添加样式

asp.net - 用于从经过身份验证的端点下载大文件的跨浏览器解决方案

angular - 如何将动态值传递给 matIcon?

postgresql - 如何使用带有制表符分隔符的 `aws_s3.query_export_to_s3` 从 RDS/Aurora 导出到 S3?

amazon-web-services - 如何在 API Gateway 中配置 API 以仅接受来自指定 EC2 实例的流量

typescript - Cypress - 带超时的条件测试

javascript - Office Scripts Excel - 为气泡图标记设置透明度

angular - 类型 'Observable<{}>' 不可分配给类型 'Observable<Item[]> : Rxjs