【问题标题】:Github CI/CD pipeline crashes with webpackGithub CI/CD 管道使用 webpack 崩溃
【发布时间】:2020-05-12 10:49:52
【问题描述】:

我正在尝试了解 CI/CD 管道的工作原理。

我决定将它与我的投资组合页面一起使用,该页面应该在每次推送时重新运行。

这是我的 yaml 配置:

name: Build Bundle for Github Pages
on:
  push:
    branches:
      - source

env:
  NODE_ENV: production
  PUBLIC_URL: http://crrmacarse.github.io/
  GA_TRACKING_CODE: ${{ secrets.GA_TRACKING_CODE }}
  FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v1
      with:
        persist-credentials: false

    - name: Build
      run: |
        npm install
        npm run prod:pipeline
        npm run sitemap
        cp dist/index.html dist/404.html
        cp google21029c74dc702d92.html dist/
        cp robots.txt dist/

    - name: Deploy
      uses: JamesIves/github-pages-deploy-action@releases/v3
      with:
        ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        BRANCH: source
        FOLDER: dist

这是错误:

webpack 配置的源代码: https://github.com/crrmacarse/crrmacarse.github.io/blob/source/compiler/production.pipeline.js

【问题讨论】:

标签: github webpack continuous-integration github-pages continuous-deployment


【解决方案1】:

如果错误信息是cannot find module 'html-webpack-plugin',您可以尝试安装它以进行测试。
survivejs/webpack-book issue 100为例:

解决方案是在使用 webpack 构建之前运行 npm i html-webpack-plugin --save-dev

OP 已使用crrmacarse/crrmacarse.github.io commit 8a4397b 修复了 GitHub Action 工作流程

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2.0.0

    - name: Use node 12
      uses: actions/setup-node@v1
      with:
          node-version: 12
          registry-url: https://registry.npmjs.org

    - name: install
      run: npm install
    - name: lint
      run: npm run sitemap
    - name: build
      run: npm run prod
    - name: copy
      run: npm run copy

然后模块 html-webpack-plugin 已正确安装并可用,如 Actions CI run 所示。

【讨论】:

  • 嗨,我实际上使用的是 github 的管道,它会在推送特定分支时重建。 yaml 配置中的 npm install 是否应该正确?
  • @crrmacarse 我仍然会添加一个步骤来测试npm i,看看是否有帮助。
  • 嗨@vonC,我应该在哪里做呢?因为 .yaml 配置中已经有一个 npm install
  • @crrmacarse 我明白了,我同意。只是为了测试,您可以在 yaml 中添加 npm i html-webpack-plugin 以查看该插件会专门返回什么吗?
  • 我按照您的指示做了,但无济于事。在此处查看管道:github.com/crrmacarse/crrmacarse.github.io/runs/…
【解决方案2】:

在构建你的项目之前使用npm install,它将你的npm库安装在你的项目将被构建的docker上。

注意:不要忘记在 packge.json 文件中定义 html-webpack-plugin

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2022-11-23
相关资源
最近更新 更多