Npm AWS CodeBuild在生成成功运行“下一个生成”时不生成任何工件

Npm AWS CodeBuild在生成成功运行“下一个生成”时不生成任何工件,npm,amazon-elastic-beanstalk,next.js,devops,aws-codebuild,Npm,Amazon Elastic Beanstalk,Next.js,Devops,Aws Codebuild,我正在使用NextJS,并尝试使用CI构建和部署到AWS Beanstalk上 这是我的buildspec.yml 版本:0.2 环境: 变量: 节点_环境:“生产” 阶段: 预构建: 命令: -echo安装依赖项 -npm安装 建造: 命令: -echo Building nextjs应用程序 -npm运行构建 后期构建: 命令: -echo生成于`日期'完成` 人工产品: 文件夹: - '**/*' 我正在监视日志,没有错误,但是构建阶段没有生成任何工件。因此,一旦管道进入部署阶段。我在日

我正在使用NextJS,并尝试使用CI构建和部署到AWS Beanstalk上

这是我的
buildspec.yml

版本:0.2
环境:
变量:
节点_环境:“生产”
阶段:
预构建:
命令:
-echo安装依赖项
-npm安装
建造:
命令:
-echo Building nextjs应用程序
-npm运行构建
后期构建:
命令:
-echo生成于`日期'完成`
人工产品:
文件夹:
- '**/*'
我正在监视日志,没有错误,但是构建阶段没有生成任何工件。因此,一旦管道进入部署阶段。我在日志中发现此错误:

----------------------------------------
/var/log/web.stdout.log
----------------------------------------
Nov 30 01:47:31 ip-172-31-50-67 web: at /var/app/current/node_modules/next/dist/bin/next:26:341
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! code ELIFECYCLE
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! errno 1
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! with-typescript@1.0.0 start: `next start`
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! Exit status 1
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR!
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! Failed at the with-typescript@1.0.0 start script.
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR! A complete log of this run can be found in:
Nov 30 01:47:31 ip-172-31-50-67 web: npm ERR!     /home/webapp/.npm/_logs/2020-11-30T01_47_31_607Z-debug.log
Nov 30 01:47:32 ip-172-31-50-67 web: > with-typescript@1.0.0 start /var/app/current
Nov 30 01:47:32 ip-172-31-50-67 web: > next start
Nov 30 01:47:32 ip-172-31-50-67 web: Error: Could not find a valid build in the '/var/app/current/.next' directory! Try building your app with 'next build' before starting the server.
Nov 30 01:47:32 ip-172-31-50-67 web: at Server.readBuildId (/var/app/current/node_modules/next/dist/next-server/server/next-server.js:137:355)
Nov 30 01:47:32 ip-172-31-50-67 web: at new Server (/var/app/current/node_modules/next/dist/next-server/server/next-server.js:3:120)
Nov 30 01:47:32 ip-172-31-50-67 web: at createServer (/var/app/current/node_modules/next/dist/server/next.js:2:638)
Nov 30 01:47:32 ip-172-31-50-67 web: at start (/var/app/current/node_modules/next/dist/server/lib/start-server.js:1:323)
Nov 30 01:47:32 ip-172-31-50-67 web: at nextStart (/var/app/current/node_modules/next/dist/cli/next-start.js:19:125)
我不明白我还能做什么?我尝试将构建阶段的工件设置更改为加密和未加密,我尝试了无缓存、本地和带有缓存桶的Amazon S3。所有这些似乎都不会产生任何人工制品


有人能告诉我我做错了什么吗?

@Marcin指出我需要仔细检查部署工件的名称并确保它与构建工件输出名称相同

@Marcin指出我需要仔细检查部署工件的名称并确保它与构建工件输出相同根据评论命名

该问题是由于在生成操作之后的部署操作中对输入工件的
设置不正确而导致的。
输入工件
应设置为
buildartifacts
,这是生成操作的输出工件。

基于注释


该问题是由于在生成操作之后的部署操作中对输入工件的
设置不正确而导致的。
Input Artifact
应设置为
buildartifacts
,这是生成操作的输出工件。

您的管道定义是什么?您能详细说明一下吗?我不知道你的定义是什么?我使用的是基本的AWS代码管道设置,没有错误。在管道的构建阶段,它成功地构建了所有东西,但是工件没有从构建阶段导出到部署阶段。我的意思是,您是如何设置它的?您在CodePipeline中的阶段定义是什么?构建操作提供程序:AWS CodeBuild输入工件:(源工件的名称)构建类型:单构建输出工件:构建工件部署操作的输入工件是什么?应该是
buildartifacts
。您的管道定义是什么?您能详细说明一下吗?我不知道你的定义是什么?我使用的是基本的AWS代码管道设置,没有错误。在管道的构建阶段,它成功地构建了所有东西,但是工件没有从构建阶段导出到部署阶段。我的意思是,您是如何设置它的?您在CodePipeline中的阶段定义是什么?构建操作提供程序:AWS CodeBuild输入工件:(源工件的名称)构建类型:单构建输出工件:构建工件部署操作的输入工件是什么?它应该是
buildartifacts