如何使用 Webpack 配置 AWS Codebuild

Posted

技术标签:

【中文标题】如何使用 Webpack 配置 AWS Codebuild【英文标题】:How to configure AWS Codebuild with Webpack 【发布时间】:2021-04-15 20:56:12 【问题描述】:

我创建了一个分四个阶段运行的 AWS Codepipeline。 1) 来自 github 的源代码,2) 将后端部署到 Elastic Beanstalk,3) 使用 Codebuild 构建前端代码(使用下面的 buildspec 文件),以及 4) 将 webpack 的结果部署到 S3。

到目前为止,除了第 3 阶段的结果外,一切都按预期进行。Codebuild 似乎将工件设置为源文件,而不是 webpack 构建的结果。当我在存储桶和文件夹中查找已部署的代码时,我期望看到一系列 js 资产文件和 manifest.json。相反,我看到了项目文件。不太清楚我在这里配置错了什么。

buildspec.yml

version: 0.2

phases:
  install:
    runtime-versions:
      nodejs: 12
    commands:
      - echo Installing dependencies...
      - yarn
  build:
    commands:
      - echo Building project...
      - yarn build
  post_build:
    commands:
      - echo build completed on `date`

artifacts:
  files:
    - '**/*'

cache:
  paths:
    - '/root/.npm/**/*'
    - '/node_modules/'

webpack-build 配置

webpack-deploy 配置

【问题讨论】:

【参考方案1】:

经过几个小时的故障排除,我终于能够弄清楚发生了什么。

在项目上运行 yarn build 会将所有内容捆绑到 /dist 文件夹中。但是,artifacts 行表明应该上传到 S3 的文件是所有项目文件。所以修复就像将**/* 更新为dist/**/* 一样简单。

【讨论】:

以上是关于如何使用 Webpack 配置 AWS Codebuild的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS Elastic Beanstalk 上使用 Nginx、React、Webpack、Gunicorn、PostgreSQL、Django 和 DRF 部署应用程序?如何使用此应用程序处

AWS S3 代理使用方法

Webpack 生产构建失败:“无法解析 'aws-sdk'”

aws + serverless + webpack => 在 prod 中找不到模块 xxx

Webpack 和 AWS Lambda 问题 - 模块上缺少处理程序

Webpack 在本地工作,但不在 AWS 服务器上