使用 GitHub 操作部署反应应用程序的问题

Posted

技术标签:

【中文标题】使用 GitHub 操作部署反应应用程序的问题【英文标题】:Problem with deploying react app using GitHub actions 【发布时间】:2021-12-19 13:15:06 【问题描述】:

我正在尝试构建一个 GitHub 工作流,将我的反应网站和 php 后端部署到服务器(使用 FTP)。 FTP 部分有效。

我现在面临的问题是,我需要自动将我构建的前端反应到我的后端的文件结构中。

我在本地使用 Windows 并在我的 project.json 中 我通过使用移动构建的前端:

"build-webapp:win":  "react-scripts build && RMDIR /S /Q webapp\\html\\static && move build\\static webapp\\html",

这也有效。

由于 GitHub 工作流在 ubuntu-latest 上运行,我实现了等效

"build-webapp:ci":  "react-scripts build && rm -rf /webapp/html/static && mv /build/static /webapp/html"

当我在 GitHub 操作上运行它时,它给了我以下错误:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! custom-react-vis-dashboard-v2@0.1.0 build-webapp:ci: `react-scripts build  && rm -rf webapp/html/static && mv build/static webapp/html`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the custom-react-vis-dashboard-v2@0.1.0 build-webapp:ci script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-11-05T12_18_53_579Z-debug.log
Error: Process completed with exit code 1.

当我在 GitHub 操作中的“windows-latest”上使用 windows 命令时,我也会遇到同样的错误。

完整的工作流程如下所示:

name: Deploy to development
on:
  push:
    branches:
      - devel
jobs:
  deploy:
    runs-on: ubuntu-latest
    name: Build, Test and Deploy
    steps:
      - name: Checkout 
        uses: actions/checkout@v2
        with:
          persist-credentials: false
      - name: Install
        run: npm install
      - name: Build Webapp
        run:  npm run build-webapp:ci
      - name: List /build
        run: ls ./build
      - name: List /webapp
        run: ls ./webapp
      - name: Deploy webapp
        uses: milanmk/actions-file-deployer@master
        with:
          remote-protocol: "sftp"
          remote-host:  $ secrets.FTP_SERVER 
          remote-user: $ secrets.FTP_USER 
          remote-password:  $ secrets.FTP_PASSWORD 
          remote-path: "/development"
          sync: "full"
          local-path: "webapp/"

我对 GitHub 操作主题还很陌生,所以我希望有人可以帮助我。

谢谢

【问题讨论】:

【参考方案1】:

好的,我自己解决了,也许这对其他人有帮助:

问题不在于 rm 和 mv,而是 npm 警告将在此处被视为错误。禁用添加 CI=false 到命令:

"build-webapp:ci": "CI=false && react-scripts build && rm -rf webapp/html/static && mv build/static webapp/html"

【讨论】:

以上是关于使用 GitHub 操作部署反应应用程序的问题的主要内容,如果未能解决你的问题,请参考以下文章

无法将反应应用程序部署到 github 页面 404 错误

如何部署 django 后端并将前端应用程序反应到同一域

使用 firebase-functions 部署基于反应的 s-s-r 应用程序时出错

npm 错误!缺少脚本:将反应应用程序部署到heroku时构建

如何使用 Github 操作将多容器应用程序部署到 Azure?

使用 Github 操作将 .env 机密添加到在 Firebase 托管上部署的 Nuxt 应用程序