reactjs - 使用 GitHub 操作部署反应应用程序的问题
问题描述
我正在尝试构建一个 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 操作主题很陌生,所以我希望有人可以帮助我。
谢谢
解决方案
好的,我自己解决了,也许这对其他人有帮助:
问题不在于 rm 和 mv ,而是 npm 警告将在此处被视为错误。禁用添加 CI=false 到命令:
"build-webapp:ci": "CI=false && react-scripts build && rm -rf webapp/html/static && mv build/static webapp/html"
推荐阅读
- python - AttributeError:模块'tensorflow'没有属性'__version__',但导入tensorflow as tf works
- configuration - Quartz 2.6.2 和 .NET Core?- 错误“无法初始化数据源”
- game-development - 在 Game Maker Studio 2 中实现对话系统的最佳方式
- javascript - JQuery 无法分配给“#back”上的属性“guid”:不是对象
- javascript - 如何验证用户是否点击了联系表格 7 提交后发送的验证链接?
- java - Java BasicDataSource 连接时卡住
- sql - 如何将此“2021 年 6 月 28 日 10:52:16 CDT (GMT-0500)”转换为 2021 年 6 月 28 日
- flutter - Riverpod - 以更好/优雅的方式创建具有异步依赖的服务
- javascript - 如何在 Typescript 的回调中访问类变量/方法?
- reactjs - 如何在子组件中传递道具以使用打字稿做出本机反应