我正在尝试将一个非常基本的角度应用程序部署到弹性beantalk。该项目是使用angular cli创建的。我没有对该项目中的文件进行任何更改。
这是我部署应用程序所采取的步骤
当我检查eb-activity.log时,总是遇到“ npm安装失败”错误。
我在这里错过了一些琐碎的事情吗?非常感谢将角度应用程序部署到EB的任何帮助。
答案 0 :(得分:6)
虽然这不能具体回答您的问题,但我认为Elastic Beanstalk不是完成此任务的正确工具。我强烈建议在S3上的静态网站上托管,如果您想使用https和自定义域名,请在其前面放置一个CloudFront发行版。
创建一个S3存储桶,例如www.mydomainname.com
启用静态网站托管
将存储桶策略设置为公开读取
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::www.mydomainname.com/*"
}
]
}
在本地将角度应用程序构建到dist文件夹中。
使用aws-cli
将文件推送到网站 aws s3 sync dist s3://www.mydomainname.com/
此解决方案的成本为几美分,比Elastic Beanstalk解决方案(EC2,EBS,ELB)低得多。 Elastic Beanstalk非常适用于Monolithic应用程序,但是它们的存在已被编号,并且在您谈论SPA,IMO时出现了错误的范例。
我知道我现在很幸运,但是我也强烈建议您使用Serverless Framework来构建和部署NodeJS API端点,以便与Angular App进行交互。
答案 1 :(得分:4)
执行以下步骤:
-Angular应用
Traceback (most recent call last)
<ipython-input-10-c242f9498457> in <module>
7 image = imutils.resize(image, width=min(400, len(image[0])))
8 image1 = imutils.resize(image1, width=min(400, len(image1[0])))
----> 9 result = cv2.absdiff(image1, image)
10 cv2.imshow(result)
error: OpenCV(3.4.2)
C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:659:
error: (-209:Sizes of input arguments do not match)
The operation is neither 'array op array' (where arrays have the same
size and the same number of channels), nor 'array op scalar', nor
'scalar op array' in function 'cv::arithm_op'
命令构建Angular应用您刚构建的角度应用程序无法在静态网站上运行,它必须在Node.js服务器上运行
-Node.js应用
ng build --prod
并按照说明创建新文件夹并创建Node.js项目npm init
命令安装Express和Path npm install express path --save
希望这很有用!
答案 2 :(得分:2)
解决了部署问题!我使用express创建服务器并提供我的角度应用程序。我需要将server.js添加到我的dist /文件夹中。我的server.js文件看起来像这样
const express = require('express');
const http = require('http');
const app = express();
const port = process.env.PORT || 3001;
app.use(express.static(__dirname));
const server = http.createServer(app);
server.listen(port, ()=> console.log("Running..."));