博客文档
Aug 01, 2024
XiaoHang个人博客
项目简介
这是一个基于现代Web技术栈开发的个人博客系统,采用前后端分离架构。本项目不仅是一个博客平台,更是一次技术实践和学习的过程。
项目目标
-
技术实践
- 深入学习 Next.js新特性
- 实践前后端分离架构
- 提升全栈开发能力
-
内容平台
- 构建个人知识管理系统
- 沉淀技术博文
- 分享学习心得
核心功能
- 📝 文章管理:发布、编辑、删除
- 🏷️ 分类管理:多维度文章归类
- 🔍 搜索功能:全文检索
- 📊 文章归纳:个人文章时间线
- 🎨 主题切换:明暗模式支持
技术架构
前端(博客)
- 框架: Next.js
- UI组件: NextUI
- 样式方案: TailwindCSS
- 状态管理: Jotai
- 编辑器: Cursor
管理后台
- 框架: Vue 3
- 构建工具: Vite
- 状态管理: Pinia
- UI组件: Element Plus
服务端
- 框架: Nest.js
- 语言: TypeScript
- ORM: TypeORM
- 数据库: MySQL
在线预览
本地开发
bash# 安装依赖 pnpm install # 启动开发服务器 pnpm dev # 构建生产版本 pnpm build
开发计划
近期计划
- SEO全文搜索
- 用户认证系统(OAuth 集成)
- 评论互动功能
长期规划
- 性能优化
- SEO完善
- 国际化支持
版本发布流程
前置条件
- 确保已安装 pnpm (
npm install -g pnpm
) - 确保有 GitHub 仓库的推送权限
发布步骤
1. 准备发布
-
确保当前分支代码是最新的:
bashgit checkout main git pull origin main -
确保依赖是最新的:
bashpnpm install -
切换到release分支:
bashgit checkout -b release/v0.0.2
2. 执行发布命令
运行发布脚本:
bashpnpm release
系统会提示以下步骤:
-
选择版本类型:
patch
: 修复版本 (x.x.1)minor
: 特性版本 (x.1.x)major
: 主版本 (1.x.x)custom
: 自定义版本号
-
确认发布版本
3. 自动化步骤
发布脚本会自动执行以下操作:
- 更新
package.json
中的版本号 - 生成 CHANGELOG.md 更新日志
- 提交变更到 Git
- 创建版本标签(格式:
v版本号-YYYYMMDD
) - 推送代码和标签到 GitHub
4. 验证发布
发布完成后,请检查:
- GitHub 仓库的 Tags 是否已更新
- CHANGELOG.md 是否已正确生成
- package.json 中的版本号是否已更新
5. 删除release分支
bashgit branch -d release/v0.0.2 git push origin --delete v0.0.2-20250218
注意事项
- 发布前请确保所有代码已经完成测试
- 可以使用
--dry
参数进行试运行:bashpnpm release --dry - 如果发布过程中出现错误,系统会自动回滚版本号
回滚方法
如果发布后发现问题需要回滚:
-
删除本地标签:
bashgit tag -d <标签名> -
删除远程标签:
bashgit push origin --delete <标签名> -
重置版本号:
- 手动修改 package.json 中的版本号
- 或重新运行 release 命令选择正确的版本
常见问题
- 如果提示权限错误,请检查 GitHub 账号权限设置
- 如果 CHANGELOG 生成失败,请确保 commit 信息格式符合规范
- 如果标签推送失败,可能是网络问题,请重试推送命令
贡献指南
欢迎提交 Issue 或 Pull Request 来帮助改进项目。