diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..2ff332c --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,31 @@ +## 描述 +请在此填写 PR 的简要描述 + +## 关联的问题 +关联的 GitHub issue(如果有):# + +## 类型 +- [ ] 🐛 Bug 修复 +- [ ] ✨ 新功能 +- [ ] 📝 文档更新 +- [ ] 🔧 配置/构建改进 +- [ ] ♻️ 代码重构 +- [ ] 📦 依赖更新 + +## 改动清单 +- [ ] 代码已通过本地测试 +- [ ] 已更新相关文档 +- [ ] 已更新 CHANGELOG.md +- [ ] 版本号已更新(如适用) +- [ ] 无新增 console 错误或警告 + +## 测试方法 +请描述如何测试此 PR: +1. +2. + +## 截图(如适用) +如果有 UI 改动,请上传相关截图 + +## 额外说明 +其他需要说明的信息... diff --git a/BUILD.md b/BUILD.md new file mode 100644 index 0000000..db51b3c --- /dev/null +++ b/BUILD.md @@ -0,0 +1,128 @@ +# 构建和发行指南 + +## 📦 打包成 EXE + +### 快速构建 + +```bash +cd config +npm run build +``` + +### 构建选项 + +| 命令 | 说明 | +|------|------| +| `npm run build` | 构建 x64 版本 (64位) | +| `npm run build:all` | 构建 x64 和 x86 版本 (64位和32位) | +| `npm run build:publish` | 构建并发布到发行源 | + +### 输出位置 + +打包完成后,安装程序位置: +``` +dist/release/Keyboard\ Typer\ Setup\ 1.2.0.exe +``` + +## 🔧 构建要求 + +- Node.js >= 14.0 +- npm >= 6.0 +- 足够的磁盘空间 (至少 500MB) + +## 📋 构建配置 + +构建配置位置:`config/package.json` - `build` 字段 + +### 关键配置项 + +```json +{ + "build": { + "appId": "com.keyboard.typer", + "productName": "Keyboard Typer", + "win": { + "target": ["nsis"], + "icon": "../assets/icons/icon.ico" + }, + "nsis": { + "oneClick": false, + "allowToChangeInstallationDirectory": true, + "perMachine": false + } + } +} +``` + +## 🚀 发行流程 + +1. **更新版本号** + ```bash + # 在 config/package.json 中更新 version 字段 + ``` + +2. **更新改动日志** + ```bash + # 编辑 README.md 的更新日志部分 + ``` + +3. **创建分支** + ```bash + git checkout -b release/v1.2.0 + ``` + +4. **提交修改** + ```bash + git add . + git commit -m "chore(release): version 1.2.0" + ``` + +5. **标签和推送** + ```bash + git tag -a v1.2.0 -m "Release version 1.2.0" + git push origin release/v1.2.0 + git push origin v1.2.0 + ``` + +6. **创建 GitHub Release** + - 在 GitHub 上创建新的 Release + - 上传生成的 .exe 文件到 Release + +## 💡 常见问题 + +### Q: 构建失败,提示缺少 electron-builder? +A: 运行 `npm install electron-builder --save-dev` + +### Q: 如何自定义安装程序名称? +A: 修改 `config/package.json` 中的 `productName` 字段 + +### Q: 如何签署 EXE? +A: 在 `config/package.json` 的 `win` 配置中添加: +```json +"certificateFile": "path/to/cert.pfx", +"certificatePassword": "password", +"signingHashAlgorithms": ["sha256"], +"sign": "./customSign.js" +``` + +## 📝 版本管理 + +当前版本:**v1.2.0** + +版本格式:`major.minor.patch` +- **major**: 大功能更新 +- **minor**: 新功能/改进 +- **patch**: 快速修复 + +## 📌 检查清单 + +发行前请确保: + +- [ ] 代码完全测试 +- [ ] 版本号已更新 +- [ ] 更新日志已编写 +- [ ] 所有依赖已更新 +- [ ] 本地构建成功 +- [ ] EXE 文件运行正常 +- [ ] 分支已合并到 master + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ed6ab94 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,48 @@ +# 更新日志 + +所有重要的项目更改都会在此文件中记录。 + +## [1.2.0] - 2026-05-06 + +### ✨ 新功能 +- 添加完整的构建和发行指南 +- 优化 npm 构建脚本,支持多架构打包 +- 支持一键生成 EXE 安装程序 + +### 🔧 改进 +- 更新 electron-builder 配置以支持发行流程 +- 改进 NSIS 安装程序配置 +- 添加构建文档和发行清单 + +### 📝 文档 +- 新增 BUILD.md 构建指南 +- 补充发行流程说明 + +## [1.1.0] - 2026-05-06 + +### ✨ 新功能 +- 完美支持中英文/特殊字符输入 +- 自带 GUI 界面,可配置延时、随机抖动、重复次数 +- 可随时停止,自带倒计时切换窗口 +- 模拟真人打字节奏 + +### 🔧 改进 +- 集成 Flask 后端与 Electron 前端 +- 提供一键启动器(launcher.py) +- 支持系统环境检查和自动修复 + +### 🐛 修复 +- 修复了多个兼容性问题 + +## 版本控制说明 + +遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/) 版本控制方案: + +- **主版本号 (Major)**:不向下兼容的 API 修改 +- **次版本号 (Minor)**:新增功能,向下兼容 +- **修订号 (Patch)**:bug 修复,向下兼容 + +### 标签格式 + +标签遵循 `v[MAJOR].[MINOR].[PATCH]` 格式,例如 `v1.2.0` + diff --git a/config/package.json b/config/package.json index 4a3ef37..c4c85f7 100644 --- a/config/package.json +++ b/config/package.json @@ -1,6 +1,6 @@ { "name": "keyboard-typer", - "version": "1.1.0", + "version": "1.2.0", "description": "Electron + Python tactical keyboard typer", "main": "../src/backend/main.js", "author": "", @@ -8,7 +8,10 @@ "scripts": { "start": "electron .", "dev": "electron . --dev", - "build": "electron-builder --win nsis --x64" + "build": "electron-builder --win nsis --x64", + "build:all": "electron-builder --win nsis --ia32 --x64", + "build:publish": "electron-builder --win nsis --x64 --publish always", + "dist": "electron-builder" }, "build": { "appId": "com.keyboard.typer",