mirror of
https://github.com/zh-lx/pinyin-pro.git
synced 2026-03-13 09:51:38 +08:00
- 添加自动体积对比脚本 (benchmark/size-compare.js) - 支持本地和 CI 环境的智能输出 - 创建独立的 GitHub Actions 工作流 - PR 中自动发布/更新体积对比评论 - 添加详细文档和快速参考指南 Features: - 🔄 自动对比本地打包文件与 CDN 文件体积 - 📊 智能检测 CI 环境并调整输出格式 - 💬 PR 评论自动发布和更新 - ⚠️ 体积变化超过 5% 时显示警告 - 📈 GitHub Actions 注释集成 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Bundle Size Comparison
这个目录包含用于对比打包文件体积的工具。
📦 功能说明
size-compare.js 脚本可以自动对比本地打包后的 dist/index.js 文件与 CDN 上已发布版本的体积差异。
🚀 使用方法
本地运行
# 仅运行体积对比(需要先手动打包)
npm run size:compare
# 打包后自动进行体积对比
npm run build:compare
自动化运行
GitHub Actions 会在以下情况自动运行体积对比:
Pull Request 触发
当向 main 分支创建或更新 PR 时,会自动触发体积对比:
- PR 创建时 (
opened) - PR 更新时 (
synchronize) - 推送新提交 - PR 重新打开时 (
reopened)
对比结果会自动作为评论发布到 PR 中,并在每次推送新提交时自动更新该评论。
Push 触发
当代码直接推送到 main 分支时,体积对比结果会显示在 GitHub Actions 的运行日志中。
工作流程
创建/更新 PR to main
↓
触发 GitHub Actions
↓
安装依赖 (npm install)
↓
构建项目 (npm run build)
↓
运行体积对比 (npm run size:compare)
↓
┌────────────────────┐
│ 对比本地 dist/ │
│ vs CDN 文件 │
└────────────────────┘
↓
┌────────────────────┐
│ 计算体积差异 │
│ 和百分比变化 │
└────────────────────┘
↓
┌─────────────────┐
│ PR 中自动发布/ │
│ 更新评论 │
└─────────────────┘
📊 输出示例
本地运行输出
========================================
文件体积对比工具
========================================
本地文件: /path/to/dist/index.js
CDN 地址: https://cdn.jsdelivr.net/npm/pinyin-pro/dist/index.js
正在读取本地文件...
本地文件大小: 315.20 KB
正在获取 CDN 文件信息...
CDN 文件大小: 315.30 KB
----------------------------------------
对比结果:
本地文件比 CDN 文件小 104 B (-0.03%)
========================================
GitHub Actions 输出
在 CI 环境中,脚本会自动使用纯文本格式输出,并包含 emoji 标识:
- ⬆️ 文件体积增加
- ⬇️ 文件体积减少
- ✅ 文件体积相同
如果体积变化超过 5%,会显示警告或祝贺信息。
PR 评论示例
当在 PR 中触发时,会自动创建如下评论:
## 📦 Bundle Size Comparison
========================================
文件体积对比工具
========================================
本地文件: /home/runner/work/pinyin-pro/pinyin-pro/dist/index.js
CDN 地址: https://cdn.jsdelivr.net/npm/pinyin-pro/dist/index.js
正在读取本地文件...
本地文件大小: 315.15 KB
正在获取 CDN 文件信息...
CDN 文件大小: 315.30 KB
----------------------------------------
对比结果:
⬇️ 本地文件比 CDN 文件小 150 B (-0.05%)
========================================
Updated at Fri, 17 Jan 2026 00:55:23 GMT
---
💡 提示: 此评论会在每次推送新提交时自动更新
🔧 技术细节
- 自动检测 CI 环境,调整输出格式
- 支持 HTTPS 重定向处理
- 彩色终端输出(仅本地环境)
- GitHub Actions 注释集成
- 自动更新 PR 评论(避免重复评论)
📝 相关文件
size-compare.js- 体积对比脚本../.github/workflows/ci.yaml- 主 CI 工作流../.github/workflows/size-compare.yaml- 独立的体积对比工作流