超详细!来部署一个react umi项目到github pages吧!

Github Pages介绍

GitHub PagesGitHub 提供的一个免费的静态网站托管服务,它允许 GitHub 用户创建和托管自己的静态网站,这些网站可以通过特定的 GitHub 仓库进行管理和托管。

官网有超详细教程,让你从0-1搭建一个静态网站,这里不再赘述;

本教程前提如下:

  1. github上有一个umi react项目
  2. 该项目是纯前端项目,不涉及后端接口调用,项目已完成,可打包

前置知识🧐

  1. gh-pages npm包,可以推送文件到github对应项目的gh-pages分支上,(任意分支也行);
  2. 在github上操作,可将gh-pages分支上的内容托管到静态网站(地址:Github用户名.github.io/创建的仓库名 )上;

接下来,我们就开始吧💪

步骤

step1 安装gh-pages开发依赖

我用的pnpm管理依赖,所以使用pnpm安装,大家使用自己的管理工具语句

bash 复制代码
pnpm install gh-pages --save-dev

step2 修改package.json

  1. 增加homepage:https://Github用户名.github.io/创建的仓库名 比如我的仓库是simpleCV,我的用户名是coder66y ,所以我的地址是:https://coder66y.github.io/simpleCV

如下:

json 复制代码
"homepage": "https://coder66y.github.io/simpleCV", //项目对应的url
  1. 增加gh-pages对应的命令行语句

d dist ,如果项目内设置了打包产物文件夹为build,需修改为gh-pages -d build`

json 复制代码
"predeploy" : "npm run build", // 预部署,打包项目
"deploy" : "gh-pages -d dist"// 部署项目,将打包产物dist内的内容推送到github的gh-pages分支上

完整的package.json如下

json 复制代码
{
  "homepage": "https://coder66y.github.io/simpleCV", //项目对应的url
  "name": "simplecv", // 项目名称
  "author": "luyi <2160360887@qq.com>",
  "scripts": {
    "dev": "umi dev",
    "build": "umi build",
    "postinstall": "umi setup",
    "setup": "umi setup",
    "start": "npm run dev",
    "predeploy" : "npm run build",
    "deploy" : "gh-pages -d dist"
  },
  "resolutions": {
    "moment": "^2.30.1"
  },
  "dependencies": {
    "@ant-design/colors": "^7.1.0",
    "@ant-design/icons": "^5.4.0",
    "@ant-design/pro-components": "^2.7.15",
    "@dnd-kit/core": "^6.1.0",
    "@dnd-kit/modifiers": "^7.0.0",
    "@dnd-kit/sortable": "^8.0.0",
    "@dnd-kit/utilities": "^3.2.2",
    "ahooks": "^3.8.1",
    "antd": "^5.20.4",
    "dayjs": "^1.11.13",
    "dva": "^2.4.1",
    "html2canvas": "^1.4.1",
    "jspdf": "^2.5.2",
    "normalize.css": "^8.0.1",
    "react-cropper": "^2.3.3",
    "react-intl": "^6.7.1",
    "react-quill": "^2.0.0",
    "umi": "^4.3.15"
  },
  "devDependencies": {
    "@types/react": "^18.0.33",
    "@types/react-dom": "^18.0.11",
    "@umijs/plugins": "^4.3.18",
    "gh-pages": "^6.2.0",
    "typescript": "^5.0.3",
    "umi-plugin-react": "^1.15.9"
  },
  "packageManager": "pnpm@9.9.0+sha1.3edbe440f4e570aa8f049adbd06b9483d55cc2d2"
}

step3 推送部署

  1. 将以上更改推送远程仓库(github)

本地终端执行如下命令

bash 复制代码
git add .
git commit -m "style: 设置部署命令"
git push
  1. 推送打包产物到gh-pages分支

本地终端执行如下命令

bash 复制代码
npm run deploy 

看下如下打印,说明推送成功

step4 修改github配置

  1. 首先仓库需要公开
  1. 打开setting中的pages,将分支设置为gh-pages

3.现在可以刷新你的静态网页了

遇到的问题🥹

  1. npm run deploy执行报错

由于umi打包构建的产物默认文件夹是dist,而我最初用的命令是gh-pages -d build,报错文件夹不存在,仔细阅读gh-pages的用法才知道错误原因;所以推送产物时一定要清楚产物的文件夹是谁;

  1. 部署到github pages上是页面空白

打开浏览器开发者工具,查看打印台,无报错,然后查看网络,发现js和css的请求都在 https://coder66y.github.io下,如下第一张图,找不到umi.js。而我们之前的github配置是把打包产物放到了https://coder66y.github.io/simpleCV下,所以需要修改下项目的打包配置,将publicPath修改为simpleCV ,并且将路由设置为hash模式,如下第二张图:

最后,我的页面成功出来,同理可以部署自己的个人博客,个人网站哦

打个广告🤪

我的项目simpleCV (静态网站)

这个是一个轻量级简历编写页面,适合新手练习react,可给想做自己项目的前端同学一个参考🥰

在线体验: coder66y.github.io/simpleCV

支持如下功能

  1. 更改简历颜色
  2. 设置简历字体,边距,大小
  3. 中英文切换
  4. 导出为图片
  5. 打印
  6. 导出为pdf
  7. 自定义不同模块内容
相关推荐
吃杠碰小鸡5 分钟前
高中数学-数列-导数证明
前端·数学·算法
kingwebo'sZone11 分钟前
C#使用Aspose.Words把 word转成图片
前端·c#·word
xjt_090130 分钟前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js
我是伪码农42 分钟前
Vue 2.3
前端·javascript·vue.js
夜郎king1 小时前
HTML5 SVG 实现日出日落动画与实时天气可视化
前端·html5·svg 日出日落
辰风沐阳1 小时前
JavaScript 的宏任务和微任务
javascript
夏幻灵2 小时前
HTML5里最常用的十大标签
前端·html·html5
冰暮流星2 小时前
javascript之二重循环练习
开发语言·javascript·数据库
Mr Xu_2 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
未来龙皇小蓝2 小时前
RBAC前端架构-01:项目初始化
前端·架构