Vite + React 项目 CI/CD 实战:自动化部署到 GitHub Pages 全流程详解
引言本文是一份详尽的技术指南,旨在帮助开发者为基于 Vite 和 React 的项目配置一套完整的 CI/CD(持续集成/持续部署)流程,实现代码提交后自动部署到 GitHub Pages。文章将覆盖从项目配置、工作流编写到常见问题排查的全过程,力求通俗易懂,可作为未来项目的标准参考。
第一步:配置 Vite 的 base 路径▶ 为什么需要这一步?
GitHub Pages 通常会将你的项目部署到一个子目录下(例如 https://username.github.io/repo-name/)。如果不进行配置,Vite 打包出的静态资源(如 CSS 和 JS 文件)会默认从根目录 (/) 加载,这会导致所有资源加载失败,页面一片空白。
▶ 如何配置?
打开项目根目录下的 vite.config.ts 文件,添加 base 配置项。
12345678910111213import { defineConfig } from "vite";import react from "@vitejs/plugin-react& ...
毛概提纲
资料来源小红书:http://xhslink.com/a/k8BRqcHPlUyeb
导论 马克思主义中国化的历史进程与理论成果一、马克思主义中国化的提出
十月革命一声炮响,给中国送来了马克思列宁主义。
1921年中国共产党应运而生。
(一) 为什么推进马克思主义中国化时代化?
推进马克思主义中国化时代化,是马克思主义理论本身发展的内在要求。
推进马克思主义中国化时代化,是解决中国实际问题的客观需要。
(二) 提出过程
1938年,毛泽东在党的六届六中全会上作了《论新阶段》的报告,标志着“马克思主义的中国化”这一命题的正式提出。
1945年,刘少奇在党的七大关于修改党章的报告,对马克思主义中国化从理论上作了进一步的阐述,并指出毛泽东思想是“中国的马克思主义”。
2021年,党的十九届六中全会通过的《中共中央关于党的百年奋斗重大成就和历史经验的决议》总结了百年来中国共产党推进马克思主义中国化时代化的重大成就,阐述了马克思主义中国化时代化的伟大历史意义。
二、马克思主义中国化时代化的科学内涵(一) 马克思主义中国化时代化,就是立足中国国情和时代特点,坚持把马克思主义基本原理 ...
git_commit规范
主流 Git Commit 规范:约定式提交 (Conventional Commits)约定式提交的格式非常简洁,结构如下:
12345<type>(<scope>): <subject><BLANK LINE><body><BLANK LINE><footer>
对于大部分提交来说,通常只需要第一行(header)就足够了。
1. HeaderHeader 部分只有一行,包括三个字段:type(必需)、scope(可选)和 subject(必需)。
Type (类型)type 用于说明 commit 的类别,只允许使用下面几个标识:
Type
描述
feat
新功能 (feature)
fix
修复 Bug
docs
文档 (documentation)
style
格式 (不影响代码运行的变动,例如空格、格式化、缺少分号等)
refactor
重构 (既不是新增功能,也不是修改 bug 的代码变动)
perf
性能优化 (提升性能的代码更改)
test
测试 ...
虚拟机VMware如何与主机共享文件夹的方法
添加共享文件夹
在虚拟机设置—选项中,启用共享文件夹,然后点添加
跟着先导添加新共享文件夹
挂载首先确保有挂载点
1sudo mkdir /mnt/hgfs
按照 Linux 的文件系统层次结构标准 (FHS),/mnt 目录通常用于临时挂载文件系统。hgfs 是 “Host-Guest File System” 的缩写,是一个约定俗成的目录名,用于挂载 VMware 的共享文件夹。
然后输入
1sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
fuse: 指的是 “Filesystem in Userspace”(用户空间文件系统)。FUSE 是一个内核模块,它允许非特权用户创建和挂载他们自己的文件系统,而无需修改内核代码。
vmhgfs-fuse: 这是 VMware 提供的一个基于 FUSE 的客户端文件系统实现,专门用于在 Linux 虚拟机中访问宿主机(Host)上的共享文件夹 (VMware Host-Guest File System)。-fuse 后缀通常表示这是 FUSE 的一个实现 ...
React-AudioContext
官方文档BaseAudioContext.createOscillator() - Web API | MDN
🧠 什么是 AudioContext?AudioContext 是 Web Audio API 的核心接口,它提供了一个音频处理的上下文环境,允许你创建、处理和播放音频。
创建方式非常简单:
1const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
兼容 Safari 的老写法也要带上。
🎛 核心概念在 AudioContext 中,音频通过一个音频图(Audio Graph)进行处理。每个节点(AudioNode)都可以接收、处理或输出声音。
流程大概是这样的:
🔧 常用 AudioNode 和 API1. 创建音频源(1) 播放音频文件123456789fetch('your-audio-file.mp3') .then(res => res.arrayBuffer()) .then(arrayBuffer => audioCtx.d ...
App灵感-刷题软件
需求分析
应用能够从包含答案的 Word 或 PDF 题库中逐题提取题目信息。
界面分解标签栏
首页
练习
首页页面
题库
创建错题
全部错题
上传框
练习页面题库列表
做题页面Bar
答题模式
背题模式
做题模式
显示题目类型、具体题目内容、选项。
底部标签栏包括:
收藏题目功能
正确、错误、不确定题目数量统计
题目列表快速导航按钮
背题模式在做题模式的基础上增加解析和笔记区
错题页面/收藏页面
提供导出功能,允许用户导出错题或收藏。
支持错题练习和收藏练习,使用户能够有针对性地练习自己的弱点或感兴趣的题目。
用 React Native 来实现这个刷题 App 是个很好的选择,它既能跨平台,也有大量现成组件库可用。根据你目前的需求分析和功能结构,我们可以设计一个清晰、可扩展的项目结构。
项目结构123456789101112131415161718192021222324QuizApp/├── assets/ # 静态资源(图标、图片等)├── components/ # 通用组件(按钮、卡片、 ...
如何快速删除目录下所有的module文件
window:
1Get-ChildItem -Path . -Recurse -Directory -Filter "node_modules" | ForEach-Object { rimraf $_.FullName }
React-项目实战-ReactFlow振动器调音
项目简介
这是一个基于 React + ReactFlow 的可视化音频调音项目。用户可以通过拖拽和连接不同的节点,调节频率、波形和音量,实现动态的声音合成。适合作为熟悉 ReactFlow、AudioContext 和前端可视化交互的练习项目。
🧰技术栈
项目采用以下技术栈构建:
React:构建用户界面核心框架
ReactFlow:用于实现节点之间的可视化拖拽连接
npm install --save @xyflow/react
AudioContext API:用于控制音频的合成和播放
Tailwind CSS:快速构建样式,提升开发效率
安装:React-CSS方案 | 云泥小窝
🔧主要功能
本项目主要实现以下功能:
1. 添加振动器节点
支持选择不同波形(正弦、锯齿、方波等)
实时调节频率,产生不同音高的振动器输出
2. 添加音量控制节点
通过滑块调节音量强弱
可将多个振动器连接到一个音量节点,实现合成混音
3. 输出节点
所有信号最终流向输出节点,实现声音播放
4. 可视化连接与删除
拖拽式创建连接线(边),支持手动断开连接
🏗️ ...