daodou-command 1.4.6 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,202 +0,0 @@
1
- # AI智能体快速参考卡片
2
-
3
- > 为AI智能体提供项目快速理解和开发指导
4
-
5
- ## 🎯 项目核心信息
6
-
7
- - **项目名称**: daodou-command (刀豆命令行工具)
8
- - **主命令**: `dao`
9
- - **当前版本**: 1.2.1
10
- - **主要功能**: 构建、多语言管理、自动更新
11
-
12
- ## 📁 关键文件位置
13
-
14
- ```
15
- bin/daodou.js # 主程序入口,命令注册
16
- lib/commands/ # 命令实现目录
17
- ├── build.js # 构建命令
18
- ├── lang.js # 多语言命令
19
- └── upgrade.js # 更新命令
20
- lib/utils/ # 工具模块
21
- ├── update-checker.js # 后台更新检查
22
- ├── git.js # Git操作
23
- └── ... # 其他工具
24
- ```
25
-
26
- ## ⚡ 快速添加新命令
27
-
28
- ### 1. 在 `bin/daodou.js` 中注册
29
- ```javascript
30
- program
31
- .command('new-command')
32
- .description('新命令描述')
33
- .option('-o, --option <value>', '选项描述')
34
- .action(async (options) => {
35
- try {
36
- const commandModule = require('../lib/commands/new-command');
37
- await commandModule.execute(options);
38
- } catch (error) {
39
- console.error(chalk.red('执行失败:'), error.message);
40
- process.exit(1);
41
- }
42
- });
43
- ```
44
-
45
- ### 2. 创建命令文件 `lib/commands/new-command.js`
46
- ```javascript
47
- const chalk = require('chalk');
48
- const ora = require('ora');
49
-
50
- async function execute(options) {
51
- const spinner = ora('执行中...').start();
52
- try {
53
- // 业务逻辑
54
- spinner.succeed('执行成功');
55
- } catch (error) {
56
- spinner.fail('执行失败');
57
- throw error;
58
- }
59
- }
60
-
61
- module.exports = { execute };
62
- ```
63
-
64
- ## 🔧 常用工具模块
65
-
66
- ### 更新检查器
67
- ```javascript
68
- const updateChecker = require('../lib/utils/update-checker');
69
- updateChecker.startBackgroundCheck(); // 启动后台检查
70
- updateChecker.shouldRemindUpdate(); // 检查是否需要提醒
71
- ```
72
-
73
- ### Git工具
74
- ```javascript
75
- const git = require('../lib/utils/git');
76
- const branch = await git.getCurrentBranch();
77
- const hasChanges = await git.hasUncommittedChanges();
78
- ```
79
-
80
- ## 📝 代码规范要点
81
-
82
- ### 必须遵循
83
- - ✅ 使用 `async/await` 处理异步
84
- - ✅ 使用 `chalk` 进行彩色输出
85
- - ✅ 使用 `ora` 显示加载状态
86
- - ✅ 统一的错误处理模式
87
- - ✅ 详细的JSDoc注释
88
-
89
- ### 避免的做法
90
- - ❌ 同步阻塞操作
91
- - ❌ 未处理的Promise
92
- - ❌ 硬编码的配置
93
- - ❌ 缺少错误处理
94
-
95
- ## 🚨 错误处理模板
96
-
97
- ```javascript
98
- async function execute(options) {
99
- try {
100
- // 参数验证
101
- if (!options.param) {
102
- throw new Error('缺少必需参数');
103
- }
104
-
105
- // 业务逻辑
106
- const result = await performAction(options);
107
- console.log(chalk.green('成功:'), result);
108
-
109
- } catch (error) {
110
- console.error(chalk.red('错误:'), error.message);
111
- throw error; // 重新抛出供上层处理
112
- }
113
- }
114
- ```
115
-
116
- ## ⚠️ 重要注意事项
117
-
118
- ### 🚨 必须遵循的规则
119
- - **新命令自动获得更新检查功能** - 无需手动实现
120
- - **不要修改主程序中的更新检查逻辑**
121
- - **不要重复实现更新检查功能**
122
- - **避免在命令中直接调用 `process.exit()`**
123
- - **不要阻塞主事件循环**
124
- - **网络请求必须设置超时时间**
125
-
126
- ### 🔄 命令执行流程
127
- ```
128
- 1. 启动后台更新检查(异步)
129
- 2. 检查并显示更新提醒(如有新版本)
130
- 3. 执行具体命令逻辑
131
- 4. 返回执行结果
132
- ```
133
-
134
- ## 📋 命令开发检查清单
135
-
136
- - [ ] 在 `bin/daodou.js` 中注册命令
137
- - [ ] 创建 `lib/commands/命令名.js` 文件
138
- - [ ] 实现 `execute(options)` 函数
139
- - [ ] 添加参数验证
140
- - [ ] 添加错误处理
141
- - [ ] 使用彩色输出
142
- - [ ] 添加加载状态
143
- - [ ] 更新帮助信息
144
- - [ ] 更新 README.md
145
- - [ ] 更新 CHANGELOG.md
146
- - [ ] 确保不干扰更新检查机制
147
- - [ ] 设置网络请求超时
148
- - [ ] 处理文件操作权限错误
149
-
150
- ## 🔄 发布流程
151
-
152
- 1. 更新版本号: `npm version patch/minor/major`
153
- 2. 更新 CHANGELOG.md
154
- 3. 提交代码: `git commit -m "描述"`
155
- 4. 发布: `npm publish`
156
-
157
- ## 🚫 禁止事项
158
-
159
- ### ❌ 绝对不要做
160
- - 修改 `bin/daodou.js` 中的更新检查逻辑
161
- - 重复实现更新检查功能
162
- - 直接调用 `process.exit()`
163
- - 阻塞主事件循环
164
- - 硬编码配置信息
165
-
166
- ### ⚠️ 需要特别注意
167
- - 网络请求必须设置超时(5-10秒)
168
- - 文件操作要处理权限错误
169
- - 大量数据要分块处理
170
- - 避免内存泄漏
171
- - 验证所有用户输入
172
-
173
- ## 💡 开发提示
174
-
175
- - 新命令会自动获得后台更新检查功能
176
- - 使用 `--help` 查看命令帮助
177
- - 错误信息要用户友好
178
- - 长时间操作要显示进度
179
- - 网络请求要设置超时
180
-
181
- ## 🎨 输出样式
182
-
183
- ```javascript
184
- // 成功信息
185
- console.log(chalk.green('✅ 操作成功'));
186
-
187
- // 错误信息
188
- console.error(chalk.red('❌ 操作失败'));
189
-
190
- // 警告信息
191
- console.log(chalk.yellow('⚠️ 警告信息'));
192
-
193
- // 信息提示
194
- console.log(chalk.blue('ℹ️ 提示信息'));
195
- ```
196
-
197
- ## 🔍 调试技巧
198
-
199
- - 使用 `console.log` 输出调试信息
200
- - 检查 `~/.daodou-update-state.json` 更新状态
201
- - 使用 `node bin/daodou.js 命令名` 直接测试
202
- - 检查网络连接和npm registry状态
package/CHANGELOG.md DELETED
@@ -1,201 +0,0 @@
1
- # 更新日志
2
-
3
- 所有重要的项目更改都将记录在此文件中。
4
-
5
- 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
6
- 并且此项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
7
-
8
-
9
- ## [1.4.6] - 2025-11-13
10
-
11
- ### 修复
12
- - 修复版本更新提示逻辑,当前版本已是最新版本时不再显示更新提示
13
- - 优化 `getUpdateReminder()` 函数,添加当前版本与最新版本的实时比较
14
-
15
- ## [1.4.5] - 2025-11-13
16
-
17
- ### 修复
18
- - 修正 Node.js 版本要求为 `>=20.18.1`,与 cheerio 1.1.2 依赖要求保持一致
19
- - cheerio 是最严格的依赖,要求 Node >= 20.18.1
20
-
21
- ## [1.4.4] - 2025-11-13
22
-
23
- ### 修复
24
- - 修正 Node.js 版本要求为 `>=18.0.0`,与 Puppeteer 24.x 依赖要求保持一致
25
- - 解决安装时 Node 版本不匹配的报错问题
26
-
27
- ## [1.4.3] - 2025-11-13
28
-
29
- ### 修复
30
- - 修复语言代码映射问题,正确识别 `tw` 为繁体中文(台湾)
31
- - 明确 `zh` 语言代码映射为简体中文
32
- - 更新所有7个翻译引擎的语言代码映射规则:
33
- - Microsoft Translator: `tw` -> `zh-Hant` (繁体中文)
34
- - Google Translator: `tw` -> `zh-tw` (繁体中文)
35
- - Baidu Translator: `tw` -> `cht` (繁体中文)
36
- - Ali Translator: `tw` -> `zh` (中文)
37
- - Youdao Translator: `tw` -> `zh-CHT` (繁体中文)
38
- - DeepL Translator: `tw` -> `ZH` (中文)
39
- - OpenAI Translator: `tw` -> `繁体中文`,`zh` -> `简体中文`
40
-
41
- ## [1.4.2] - 2025-09-26
42
-
43
- ### 修复
44
- - 清理代理功能相关代码,移除已废弃的代理统计信息输出
45
-
46
- ## [1.4.1] - 2025-09-26
47
-
48
- ### 修复
49
- - 移除翻译服务初始化时的冗余输出信息,提升用户体验
50
-
51
- ## [1.4.0] - 2025-09-26
52
-
53
- ### 新增
54
- - 实现7种翻译引擎:微软、Google、百度、阿里云、有道、DeepL、OpenAI
55
- - 支持多引擎配置和优先级调度
56
- - HTML文档翻译支持,保持标签结构完整
57
- - 智能引擎故障转移和重试机制
58
- - 灵活的API密钥配置管理
59
-
60
- ### 更改
61
- - 重构翻译服务架构,支持多引擎调度
62
- - 优化配置文件结构,翻译引擎配置移至lang命令下
63
- - 简化配置结构,移除重复的priority字段,统一使用enginePriority
64
- - 自动生成配置时包含完整的翻译引擎配置
65
- - 提升翻译服务的稳定性和可靠性
66
-
67
- ## [1.3.0] - 2025-09-16
68
-
69
- ### 新增
70
- - 添加 `dao config` 全局配置管理命令
71
- - `dao config init` - 初始化全局配置文件
72
- - `dao config show` - 显示当前配置信息(全局+项目+合并后)
73
- - `dao config edit` - 编辑配置文件(支持vim等编辑器)
74
- - `dao config clear` - 清除配置文件
75
- - `dao config` - 交互式配置向导
76
- - 优化配置结构,代理配置提升到全局配置
77
- - `proxyListUrl` 和 `proxyTestUrl` 移至全局配置
78
- - 项目配置默认不再生成代理相关配置
79
- - 简化项目配置,减少重复配置项
80
-
81
- ### 更改
82
- - 默认编辑器从nano改为vim,提升编辑体验
83
- - 配置管理更加智能和用户友好
84
- - 全局配置和项目配置层级更清晰
85
-
86
- ### 技术改进
87
- - 增强配置管理功能
88
- - 改进用户交互体验
89
- - 优化配置文件结构
90
-
91
- ## [1.2.3] - 2025-09-16
92
-
93
- ### 修复
94
- - 更新CHANGELOG.md记录1.2.2版本的完整变更内容
95
-
96
- ## [1.2.2] - 2025-09-16
97
-
98
- ### 新增
99
- - 添加AI智能体开发规范文档
100
- - 详细的命令开发指南 (COMMAND_DEVELOPMENT_GUIDE.md)
101
- - AI快速参考卡片 (AI_QUICK_REFERENCE.md)
102
- - 完整的代码规范和最佳实践
103
- - 开发约束和禁止事项说明
104
- - 智能更新提醒功能
105
- - 后台异步检查更新,不影响命令执行性能
106
- - 自动提醒用户有新版本可用
107
- - 支持重复提醒,确保用户不会错过更新
108
-
109
- ### 技术改进
110
- - 优化后台更新检查为完全异步执行
111
- - 使用setImmediate和setTimeout确保不阻塞主程序
112
- - 改进错误处理和用户反馈机制
113
- - 清理测试文件,保持项目整洁
114
-
115
- ### 文档完善
116
- - 为AI智能体提供详细的开发规范
117
- - 包含项目架构、代码规范、错误处理等完整指南
118
- - 提供快速参考和检查清单
119
- - 明确开发约束和注意事项
120
-
121
- ## [1.2.0] - 2025-09-16
122
-
123
- ### 新增
124
- - 添加 `dao upgrade` 命令用于检查和更新工具版本
125
- - 支持 `--check` 选项仅检查版本不更新
126
- - 支持 `--force` 选项强制更新
127
- - 自动从npm获取最新版本信息
128
- - 智能版本比较和更新提示
129
- - 主程序自动读取package.json中的版本号,无需手动维护
130
-
131
- ### 更改
132
- - 将update命令重命名为upgrade,更符合CLI工具命名习惯
133
- - 优化版本管理流程,减少手动维护工作
134
-
135
- ### 技术改进
136
- - 改进错误处理和用户反馈
137
- - 添加彩色输出和加载动画
138
- - 增强网络超时和错误恢复机制
139
-
140
- ## [1.1.2] - 2025-09-16
141
-
142
- ### 修复
143
- - 修复主程序版本号显示问题
144
- - 主程序现在自动读取package.json中的版本号,无需手动维护
145
-
146
- ## [1.1.1] - 2025-09-16
147
-
148
- ### 修复
149
- - 修复主程序版本号显示问题
150
- - 主程序现在自动读取package.json中的版本号,无需手动维护
151
-
152
- ## [1.1.0] - 2025-09-16
153
-
154
- ### 新增
155
- - 在package.json中添加git仓库信息
156
- - 添加repository字段,指向GitHub仓库
157
- - 添加bugs字段,指向GitHub issues页面
158
- - 添加homepage字段,指向项目主页
159
-
160
- ### 更改
161
- - 版本号从1.0.0升级到1.1.0
162
- - 更新了npm包信息,现在包含完整的仓库链接
163
-
164
- ## [1.0.0] - 2025-09-16
165
-
166
- ### 新增
167
- - 初始版本发布
168
- - 支持自动化构建功能
169
- - 自动检测Git分支
170
- - 一键触发Jenkins构建
171
- - 实时监听构建进度
172
- - 支持多语言管理功能
173
- - 多语言文件管理
174
- - 自动翻译功能(Google Translate API)
175
- - 多代理轮换绕过API限制
176
- - 命令行工具基础功能
177
- - 使用commander.js构建CLI
178
- - 支持help和version命令
179
- - 配置文件自动生成和管理
180
-
181
- ### 技术特性
182
- - 基于Node.js开发
183
- - 使用simple-git进行Git操作
184
- - 集成Google Translate API
185
- - 支持代理轮换
186
- - 使用Puppeteer进行浏览器自动化
187
- - 支持JSON5配置文件格式
188
-
189
- ---
190
-
191
- ## 版本说明
192
-
193
- - **主版本号(MAJOR)**: 当你做了不兼容的API修改
194
- - **次版本号(MINOR)**: 当你做了向下兼容的功能性新增
195
- - **修订号(PATCH)**: 当你做了向下兼容的问题修正
196
-
197
- ## 链接
198
-
199
- - [GitHub仓库](https://github.com/h025/daodou-command)
200
- - [npm包页面](https://www.npmjs.com/package/daodou-command)
201
- - [问题反馈](https://github.com/h025/daodou-command/issues)