该问题的解决方法是在CodeBuild项目中添加"npm run build"或"yarn run build"命令,并将自定义动作的框架定义为"CODE_BUILD"。建议使用以下代码作为参考:
import * as codebuild from '@aws-cdk/aws-codebuild';
const sourceOutput = new codepipeline.Artifact();
const codeBuildProject = new codebuild.PipelineProject(this, 'BuildProject', {
buildSpec: codebuild.BuildSpec.fromObject({
version: '0.2',
phases: {
install: {
commands: [
'npm install'
],
},
build: {
commands: [
'npm run build' // modify this command
],
}
},
artifacts: {
files: [
'**/*'
],
"base-directory": 'dist'
},
}),
});
const customAction = new codepipeline_actions.CodeBuildAction({
actionName: 'Build',
project: codeBuildProject,
input: sourceOutput,
outputs: [websiteBuild],
});
pipeline.addStage({
stageName: 'Build',
actions: [customAction],
});
其中,"npm run build"可以根据项目使用的构建工具和脚本进行修改。