使用 Elastic Beanstalk AWS 部署 Angular 6 通用
Deploying Angular 6 Universal using Elastic Beanstalk AWS
我正在研究 Angular 6 Universal on AWS。我的网站托管在 AWS 上,我使用 Elastic Beanstalk 进行部署。
我的 Angular 6 通用应用程序是使用 @ng-toolkit/universal 使用 angular CLI 创建的,它会自动在应用程序中添加所需的服务器配置。
我遇到了 deployment.My 部署总是失败的问题。我不知道如何部署已编译 angular 的生产版本以及 Nodejs 服务器文件。我 google 进行了搜索,但找不到合适的解决方案。
我执行的步骤:
- ng new my-app --routing
- ng 添加@ng-toolkit/universal
- 是否需要对几个文件进行更改
- 运行编译生产版本和生成服务器文件的命令
- /dist 使用浏览器和服务器版本创建的文件夹
文件夹结构如下所示:
我尝试将 /dist 部署到服务器但失败了。我尝试使用 Typescript 部署整个根文件夹,但仍然失败。
我终于弄明白了这个问题,我创建了这个帖子,以便它可以帮助其他人。
Elastic Beanstalk 默认会先尝试 运行 Server.js 文件,如果找不到则 app.js 如果找不到则 运行 命令 "npm start"
所以有2个解
- 文件local.js(由@ng-toolkit 创建)运行是 nodejs 服务器。所以你要么将它重命名为 server.js 或者 app.js 这样 EB 就会在成功部署后执行它,然后部署使用 "eb deploy" 命令将整个根文件夹复制到您的服务器。
- 或者将 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 );
});
最后也是重要的一步。
- Elastic beanstalk 部署失败并在@ng-toolkit 安装时抛出错误。由于@ng-toolkit/universal 处于测试阶段,它可能有错误。
- 所以打开package.json文件并移动"@ng-toolkit/universal": 从 dependencies 到 devDepedencies
就是这样!现在部署,您的应用程序应该可以工作了。如果您遇到任何问题或此部署的其他最佳实践,请告诉我。
我正在研究 Angular 6 Universal on AWS。我的网站托管在 AWS 上,我使用 Elastic Beanstalk 进行部署。
我的 Angular 6 通用应用程序是使用 @ng-toolkit/universal 使用 angular CLI 创建的,它会自动在应用程序中添加所需的服务器配置。
我遇到了 deployment.My 部署总是失败的问题。我不知道如何部署已编译 angular 的生产版本以及 Nodejs 服务器文件。我 google 进行了搜索,但找不到合适的解决方案。
我执行的步骤:
- ng new my-app --routing
- ng 添加@ng-toolkit/universal
- 是否需要对几个文件进行更改
- 运行编译生产版本和生成服务器文件的命令
- /dist 使用浏览器和服务器版本创建的文件夹
文件夹结构如下所示:
我尝试将 /dist 部署到服务器但失败了。我尝试使用 Typescript 部署整个根文件夹,但仍然失败。
我终于弄明白了这个问题,我创建了这个帖子,以便它可以帮助其他人。
Elastic Beanstalk 默认会先尝试 运行 Server.js 文件,如果找不到则 app.js 如果找不到则 运行 命令 "npm start"
所以有2个解
- 文件local.js(由@ng-toolkit 创建)运行是 nodejs 服务器。所以你要么将它重命名为 server.js 或者 app.js 这样 EB 就会在成功部署后执行它,然后部署使用 "eb deploy" 命令将整个根文件夹复制到您的服务器。
- 或者将 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 );
});
最后也是重要的一步。
- Elastic beanstalk 部署失败并在@ng-toolkit 安装时抛出错误。由于@ng-toolkit/universal 处于测试阶段,它可能有错误。
- 所以打开package.json文件并移动"@ng-toolkit/universal": 从 dependencies 到 devDepedencies
就是这样!现在部署,您的应用程序应该可以工作了。如果您遇到任何问题或此部署的其他最佳实践,请告诉我。