node.js - 如何在 AWS 上为 NodeJS 项目设置持续部署管道?
问题描述
我正在使用 Elastic Beanstalk 为我的 NodeJS 应用程序提供服务。当我通过生成项目源代码的 .zip 存档手动部署时,它工作得非常好。zip 文件实际上包含:
\dist
server.js
request-map.js
credentials.json
现在我正在尝试按照以下方式设置持续部署管道:https ://aws.amazon.com/getting-started/tutorials/continuous-deployment-pipeline/ 。部署成功,但是当我导航到我的应用程序时,我看到:
Error: ENOENT: no such file or directory, stat '/var/app/current/dist/wisesheet/index.html'
本教程不包含构建阶段,我认为这是问题所在 - 管道如何知道要部署哪些工件?当然,直接在 repo 中没有 dist 文件夹,因为还没有构建任何内容。那么在我将更改推送到生产分支后,它怎么知道要部署什么?
解决方案
在部署操作之前添加带有 CodeBuild 操作的构建阶段。
在 CodeBuild 服务中,构建规范是一个文件,其中列出了构建项目的命令。工件部分非常重要,因为您在此处提到的文件/文件夹将被压缩并馈送到下一阶段(您的部署阶段)
版本:0.2
phases:
install:
commands:
- npm install -g typescript
build:
commands:
- tsc index.ts
artifacts:
files:
- index.js
我发现这个资源在添加构建阶段时可能会有所帮助:
推荐阅读
- html - 如何禁用键盘选项卡焦点
- reactjs - TypeScript JSX 表达式中的逗号运算符
- c# - Visual Studio 2017 intellisense 说命名空间就像一个类一样使用,编译得很好
- javascript - 重新创建控制台 en js
- node.js - 安装新模块后如何刷新 package.json 文件?
- git - Github 拉取请求模板未显示
- android - 从特定节点 firebase 数据库中检索数据
- android - 谷歌地图在 Android Pie 上崩溃
- python - 无法在不同的服务器上访问我的烧瓶 python 程序
- css - CSS:悬停在 SVG 组区域而不是渲染像素上,指针事件:边界框不能跨浏览器工作。如何解决