”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 部署 React 应用程序:GitHub 页面使用指南

部署 React 应用程序:GitHub 页面使用指南

发布于2024-07-30
浏览:679

Deploying React Apps: A Guide to Using GitHub Pages

许多开发者发现部署React应用程序很困难,尤其是那些不熟悉生态系统的开发者。您可以使用 GitHub Pages 免费轻松托管静态网页,包括 React 应用程序。在这个详细教程的帮助下,将 React 应用程序部署到 GitHub Pages 将变得轻松无忧,该教程将引导您完成该过程的每一步。

  1. GitHub Pages 简介

GitHub Pages 是一项静态站点托管服务,旨在直接从 GitHub 存储库托管您的个人、组织或项目页面。它提供与 GitHub 工作流程的无缝集成,使其成为托管 React 应用程序的理想选择。

主要优点:

免费且易于使用。

支持自定义域。

自动构建和部署您的网站。

有关更多信息,请查看 GitHub Pages 文档。

  1. 设置你的 React 应用程序

在将 React 应用程序部署到 GitHub Pages 之前,请确保您有一个可用的 React 应用程序。如果您还没有,您可以使用 Create React App (CRA) 创建一个新的 React 应用程序。

npx create-react-app my-react-app
cd my-react-app

此命令使用所有必要的配置设置一个新的 React 项目。

  1. 准备部署您的 React 应用程序

要将 React 应用程序部署到 GitHub Pages,您需要对应用程序的配置进行一些修改。

安装 GitHub Pages 包:

npm install gh-pages --save-dev

更新package.json:

将以下字段添加到您的 package.json 文件中:

"homepage": "https://.github.io/",
"scripts": {
  "predeploy": "npm run build",
  "deploy": "gh-pages -d build"
}

替换为您的 GitHub 用户名和存储库名称。

  1. 创建 GitHub 存储库

转到 GitHub 并创建一个新存储库。

命名您的存储库并将其设置为公共。

不要使用 README、.gitignore 或许可证进行初始化,因为这些将在稍后添加。

  1. 将您的 React 应用程序部署到 GitHub Pages

现在您的 React 应用程序已准备就绪并且您拥有 GitHub 存储库,是时候进行部署了。

初始化Git并推送到GitHub:

git init
git remote add origin https://github.com//.git
git add .
git commit -m "Initial commit"
git push -u origin master

部署您的应用程序:

npm run deploy

此命令将构建您的应用程序并将其部署到存储库的 gh-pages 分支。

  1. 常见部署问题和故障排除

将 React 应用程序部署到 GitHub Pages 有时会遇到问题。以下是常见问题及其解决方案:

404错误:确保package.json中的主页字段设置正确。

构建失败:检查构建脚本并确保安装所有依赖项。

CORS 问题:如果您发出跨源请求,请确保您的 API 端点支持 CORS。

有关更多故障排除提示,请参阅 GitHub Pages 故障排除指南。

  1. 使用 GitHub Actions 自动化部署

GitHub Actions 提供强大的 CI/CD 功能,可以自动化您的部署过程。设置方法如下:

创建工作流程文件:

在您的存储库中,创建一个名为 .github/workflows/deploy.yml 的文件。

添加部署脚本:

名称:将 React 应用程序部署到 GitHub Pages

on:
  push:
    branches:
      - master

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Set up Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm install

      - name: Build the React app
        run: npm run build

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./build

只要您将更改推送到主分支,此工作流程就会自动部署您的 React 应用程序。

  1. 高级部署技术

除了基础知识之外,您还可以使用几种高级技术来增强部署过程:

自定义域:您可以通过将 CNAME 文件添加到存储库来在 GitHub Pages 站点中使用自定义域。

HTTPS 强制执行:通过在存储库设置中启用 HTTPS 选项,确保您的网站始终通过 HTTPS 提供服务。

分支部署:从不同分支进行部署以用于临时和生产环境。

有关详细信息,请参阅 GitHub Pages 自定义域指南。

  1. 部署 React 应用程序的最佳实践

为确保成功部署和高质量的用户体验,请遵循以下最佳实践:

优化您的构建:使用 webpack 和 Babel 等工具来优化您的 JavaScript 包。

使用环境变量:使用环境变量管理特定于环境的设置。

监控性能:使用性能监控工具来跟踪和提高已部署应用程序的性能。

更多最佳实践,请参阅React部署指南。

  1. 结论

将 React 应用程序部署到 GitHub Pages 是一个简单的过程,可以极大地简化静态网站的托管和管理。通过遵循本指南中概述的步骤,您可以确保顺利高效的部署过程。

通过遵循本指南,您将能够将 React 应用程序部署到 GitHub Pages,利用 GitHub 托管功能的强大功能将您的应用程序交付给全世界。

版本声明 本文转载于:https://dev.to/nilebits/deploying-react-apps-a-guide-to-using-github-pages-1f56?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Next.js - 概述
    Next.js - 概述
    本文作为初学者友好的指南和使用 Next.js 的步骤。 Next.js 是一个用于构建 Web 应用程序的灵活框架。相反,它是一个构建在 Node.js 之上的 React 框架。 设置您的 Next.js 项目 要启动新的 Next.js 项目,您需要在计算机上安装 Node.js。 安装 安装...
    编程 发布于2024-11-02
  • 如何在代码中使用 Unsplash 图片
    如何在代码中使用 Unsplash 图片
    作为一名从事新 SaaS 项目的开发人员,我需要直接通过 URL 链接一些 Unsplash 图像。 最初,我看到一篇推荐使用 https://source.unsplash.com/ API 的文章(链接)。但是,此方法不再有效,并且仅从 URL 字段复制链接并不能提供嵌入所需的直接图像 URL...
    编程 发布于2024-11-02
  • 如何合并关联数组、处理缺失键以及填充默认值?
    如何合并关联数组、处理缺失键以及填充默认值?
    合并多个关联数组并添加具有默认值的缺失列将关联数组与不同的键集组合起来创建统一的数组可能具有挑战性。这个问题探索了一种实现此目的的方法,所需的输出是一个数组,其中键被合并,缺失的列用默认值填充。为了实现这一点,建议结合使用 array_merge 函数精心设计的键数组:$keys = array()...
    编程 发布于2024-11-02
  • 通过 testcontainers-go 和 docker-compose 来利用您的测试套件
    通过 testcontainers-go 和 docker-compose 来利用您的测试套件
    Welcome back, folks! Today, we will cover the end-to-end tests in an intriguing blog post. If you've never written these kinds of tests or if you stri...
    编程 发布于2024-11-02
  • 以下是一些适合您文章的基于问题的标题:

**直接简洁:**

* **如何在Windows控制台中正确显示UTF-8字符?**
* **为什么传统方法无法显示
    以下是一些适合您文章的基于问题的标题: **直接简洁:** * **如何在Windows控制台中正确显示UTF-8字符?** * **为什么传统方法无法显示
    在 Windows 控制台中正确显示 UTF-8 字符使用传统方法在 Windows 控制台中显示 UTF-8 字符的许多尝试均失败正确渲染扩展字符。失败的尝试:使用 MultiByteToWideChar() 和 wprintf() 的一种常见方法被证明是无效的,只留下 ASCII 字符可见。此外...
    编程 发布于2024-11-02
  • ReactJS 的模拟介绍
    ReactJS 的模拟介绍
    ReactJS 19:重要部分 并发模式增强: ReactJS 19 中最大的改进是并发模式,它不仅在应用程序自身更新时保持 UI 平滑和响应灵敏,而且还确保了无缝界面,尤其是在复杂的过渡(例如动画)时。 改进的服务器组件: 在 Python 的引领下,ReactJ...
    编程 发布于2024-11-02
  • 首届DEV网页游戏挑战赛评委
    首届DEV网页游戏挑战赛评委
    我被要求对DEV团队9月份组织的第一届网页游戏挑战赛提交的参赛作品进行评判,结果在10月初发布。 我们几个月来一直在 DEV 上组织挑战(迷你黑客马拉松),并计划宣布我们的第一个网页游戏挑战。鉴于您在游戏社区 和 dev.to 的专业知识和参与度,我们想知道您是否有兴趣成为客座评委。 谁能对此说“不...
    编程 发布于2024-11-02
  • 购买经过验证的现金应用程序帐户:安全可靠的交易
    购买经过验证的现金应用程序帐户:安全可靠的交易
    Buying verified Cash App accounts is not recommended. It can lead to security risks and potential account bans. If you want to more information just k...
    编程 发布于2024-11-02
  • 为什么 `std::function` 缺乏相等比较?
    为什么 `std::function` 缺乏相等比较?
    揭开 std::function 的等式可比性之谜难题:为什么是 std::function,现代 C 代码库的一个组成部分,不具备相等比较功能?这个问题从一开始就困扰着程序员,导致管理可调用对象集合的混乱和困难。早期的歧义:在 C 语言的早期草案中11 标准中,operator== 和operat...
    编程 发布于2024-11-02
  • JavaScript 类型检查 |编程教程
    JavaScript 类型检查 |编程教程
    介绍 本文涵盖以下技术技能: 在本实验中,我们将探索一个 JavaScript 函数,该函数检查提供的值是否属于指定类型。我们将使用 is() 函数,它利用构造函数属性和 Array.prototype.includes() 方法来确定值是否属于指定类型。本实验将帮助您更好地了解 ...
    编程 发布于2024-11-02
  • 使用 Streamlit 将机器学习模型部署为 Web 应用程序
    使用 Streamlit 将机器学习模型部署为 Web 应用程序
    介绍 机器学习模型本质上是一组用于进行预测或查找数据模式的规则或机制。简单地说(不用担心过于简单化),在 Excel 中使用最小二乘法计算的趋势线也是一个模型。然而,实际应用中使用的模型并不那么简单——它们通常涉及更复杂的方程和算法,而不仅仅是简单的方程。 在这篇文章中,我将首先构...
    编程 发布于2024-11-02
  • ## utf8_unicode_ci 与 utf8_bin:哪种 MySQL 排序规则最适合德国网站?
    ## utf8_unicode_ci 与 utf8_bin:哪种 MySQL 排序规则最适合德国网站?
    为德语选择最佳 MySQL 排序规则在设计为德语受众量身定制的网站时,支持像 ä、 ü 和 ß。当涉及特定于语言的要求时,排序规则的选择起着重要作用。字符集和排序规则对于字符处理,UTF-8 仍然是首选选项,提供广泛的字符支持。至于排序规则,需要考虑德语特定字符。排序规则类型MySQL 提供各种排序...
    编程 发布于2024-11-02
  • 异常处理基础知识
    异常处理基础知识
    Java中的异常处理由五个关键字管理:try、catch、 throw、throws和finally。 这些关键字构成了一个相互关联的子系统。 要监视的指令位于 try 块内。 如果try块中发生异常,则会抛出异常。 代码可以使用catch捕获并处理异常。 系统异常由Java运行时自动抛出。 要手...
    编程 发布于2024-11-02
  • 好的第一期:做出您的第一个开源贡献
    好的第一期:做出您的第一个开源贡献
    嘿,未来的开源贡献者! ? 一开始为开源做出贡献可能会令人生畏,尤其是当项目有数千行代码并且对问题进行深入讨论时。但这就是为什么好的首要问题存在。它们就像是一个友好的邀请,让你尝试一下并熟悉操作,而不会迷失在杂草中。将它们视为帮助您开始骑行的辅助轮。 无论如何,什么是好的第一期? 这...
    编程 发布于2024-11-02
  • 目录:Django 基础知识
    目录:Django 基础知识
    点击此处收听我的直播 目录:Django 基础知识 Django简介 Django框架概述 安装Python 设置虚拟环境 安装 Django 创建您的第一个 Django 项目 Django 项目结构 理解 Django 的项目布局 管理 Django 设置 配置数据库设置 urls.py、vi...
    编程 发布于2024-11-02

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3