ccman 0.0.4 → 0.1.1

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.
@@ -8,6 +8,14 @@ export declare class ShellManager {
8
8
  * 写入环境变量到 CCMan 配置文件并更新 shell 引用
9
9
  */
10
10
  writeToShell(envVars: ShellEnvVars, envName?: string): Promise<ShellWriteResult>;
11
+ /**
12
+ * 创建手动配置结果
13
+ */
14
+ private createManualConfigResult;
15
+ /**
16
+ * 检查shell配置文件写入权限
17
+ */
18
+ private checkShellWritePermissions;
11
19
  /**
12
20
  * 写入 ccmanrc 文件
13
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ShellManager.d.ts","sourceRoot":"","sources":["../../src/shell/ShellManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrE,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;;IAQrC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuBtF;;OAEG;YACW,YAAY;IAU1B;;OAEG;YACW,oBAAoB;IAyClC;;OAEG;YACW,iBAAiB;IAmB/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA6CjD;;OAEG;YACW,oBAAoB;IAWlC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IA2BvC;;OAEG;IACH,WAAW,IAAI,SAAS;IAcxB;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAkCnD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBzE;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAsB5B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAuDlD;;OAEG;IACH,YAAY,IAAI;QACd,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;CAcF"}
1
+ {"version":3,"file":"ShellManager.d.ts","sourceRoot":"","sources":["../../src/shell/ShellManager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrE,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;;IAQrC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmCtF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwChC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;OAEG;YACW,YAAY;IAQ1B;;OAEG;YACW,oBAAoB;IAyClC;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA6CjD;;OAEG;YACW,oBAAoB;IAWlC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IA2BvC;;OAEG;IACH,WAAW,IAAI,SAAS;IAcxB;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE;IAkCnD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IAmBzE;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAsB5B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAuDlD;;OAEG;IACH,YAAY,IAAI;QACd,SAAS,EAAE,SAAS,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;CAcF"}
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ShellManager = void 0;
37
- const fs = __importStar(require("fs"));
37
+ const fse = __importStar(require("fs-extra"));
38
38
  const path = __importStar(require("path"));
39
39
  const os = __importStar(require("os"));
40
40
  const constants_1 = require("../config/constants");
@@ -49,35 +49,120 @@ class ShellManager {
49
49
  */
50
50
  async writeToShell(envVars, envName) {
51
51
  try {
52
- // 1. 写入环境变量到独立的 ccmanrc 文件
52
+ // 1. 写入环境变量到独立的 ccmanrc 文件(通常不会有权限问题)
53
53
  await this.writeCCMANRC(envVars, envName);
54
- // 2. 确保 shell 配置文件中有对 ccmanrc 的引用
55
- const shellUpdateResult = await this.ensureShellReference();
56
- return {
57
- success: true,
58
- filePath: this.ccmanrcPath,
59
- message: `Environment variables written to ${this.ccmanrcPath}${shellUpdateResult.updated ? ` and shell reference ${shellUpdateResult.action}` : ''}`
60
- };
54
+ // 2. 检查shell配置文件权限
55
+ const shellPermissionCheck = this.checkShellWritePermissions();
56
+ // 3. 尝试更新 shell 配置文件引用
57
+ if (shellPermissionCheck.hasWritableShellConfig) {
58
+ try {
59
+ const shellUpdateResult = await this.ensureShellReference();
60
+ return {
61
+ success: true,
62
+ filePath: this.ccmanrcPath,
63
+ message: `环境变量已写入 ${this.ccmanrcPath}${shellUpdateResult.updated ? ` 并${shellUpdateResult.action}shell引用` : ''}`
64
+ };
65
+ }
66
+ catch (error) {
67
+ // Shell引用失败但有可写配置文件时,提供具体的手动指导
68
+ return this.createManualConfigResult(shellPermissionCheck, String(error));
69
+ }
70
+ }
71
+ else {
72
+ // 没有可写的shell配置文件,提供完整的手动配置指导
73
+ return this.createManualConfigResult(shellPermissionCheck);
74
+ }
61
75
  }
62
76
  catch (error) {
63
77
  return {
64
78
  success: false,
65
79
  filePath: this.ccmanrcPath,
66
- message: 'Failed to write environment variables',
80
+ message: '写入环境变量失败',
67
81
  error: String(error)
68
82
  };
69
83
  }
70
84
  }
85
+ /**
86
+ * 创建手动配置结果
87
+ */
88
+ createManualConfigResult(shellPermissionCheck, shellError) {
89
+ const reference = this.generateShellReference().trim();
90
+ const writableFiles = shellPermissionCheck.shellConfigAccess.filter(f => f.writable);
91
+ const nonWritableFiles = shellPermissionCheck.shellConfigAccess.filter(f => !f.writable);
92
+ let message = `环境变量已写入 ${this.ccmanrcPath},但需要手动配置shell引用。\n\n`;
93
+ if (writableFiles.length > 0) {
94
+ message += `推荐添加到以下文件之一:\n`;
95
+ writableFiles.forEach(f => {
96
+ message += ` ✅ ${f.file}\n`;
97
+ });
98
+ }
99
+ if (nonWritableFiles.length > 0) {
100
+ message += `以下文件无写入权限:\n`;
101
+ nonWritableFiles.forEach(f => {
102
+ message += ` ❌ ${f.file} (${f.error})\n`;
103
+ });
104
+ message += `\n可尝试修复权限:\n`;
105
+ nonWritableFiles.forEach(f => {
106
+ if (f.error === '无写入权限') {
107
+ message += ` chmod 644 ${f.file}\n`;
108
+ }
109
+ });
110
+ }
111
+ message += `\n需要手动添加的内容:\n${reference}`;
112
+ return {
113
+ success: true, // ccmanrc写入成功,只是需要手动配置
114
+ filePath: this.ccmanrcPath,
115
+ message,
116
+ error: shellError ? `Shell配置自动更新失败: ${shellError}` : '所有shell配置文件都无写入权限'
117
+ };
118
+ }
119
+ /**
120
+ * 检查shell配置文件写入权限
121
+ */
122
+ checkShellWritePermissions() {
123
+ const result = {
124
+ hasWritableShellConfig: false,
125
+ shellConfigAccess: []
126
+ };
127
+ const shellType = this.detectShell();
128
+ const configFiles = this.getShellConfigFiles(shellType);
129
+ for (const configFile of configFiles) {
130
+ const fileCheck = { file: configFile, writable: false, error: undefined };
131
+ try {
132
+ if (fse.pathExistsSync(configFile)) {
133
+ // 文件存在,检查写入权限
134
+ fse.accessSync(configFile, fse.constants.W_OK);
135
+ fileCheck.writable = true;
136
+ result.hasWritableShellConfig = true;
137
+ }
138
+ else {
139
+ // 文件不存在,检查父目录权限(能否创建文件)
140
+ const dir = path.dirname(configFile);
141
+ if (fse.pathExistsSync(dir)) {
142
+ fse.accessSync(dir, fse.constants.W_OK);
143
+ fileCheck.writable = true;
144
+ result.hasWritableShellConfig = true;
145
+ }
146
+ else {
147
+ fileCheck.error = '目录不存在';
148
+ }
149
+ }
150
+ }
151
+ catch (error) {
152
+ fileCheck.error = `无写入权限`;
153
+ }
154
+ result.shellConfigAccess.push(fileCheck);
155
+ }
156
+ return result;
157
+ }
71
158
  /**
72
159
  * 写入 ccmanrc 文件
73
160
  */
74
161
  async writeCCMANRC(envVars, envName) {
75
162
  // 确保 .ccman 目录存在
76
- if (!fs.existsSync(this.ccmanDir)) {
77
- fs.mkdirSync(this.ccmanDir, { recursive: true });
78
- }
163
+ fse.ensureDirSync(this.ccmanDir);
79
164
  const content = this.generateExportStatements(envVars, envName);
80
- fs.writeFileSync(this.ccmanrcPath, content);
165
+ await fse.writeFile(this.ccmanrcPath, content, 'utf8');
81
166
  }
82
167
  /**
83
168
  * 确保 shell 配置文件中有对 ccmanrc 的引用
@@ -87,8 +172,8 @@ class ShellManager {
87
172
  const configFiles = this.getShellConfigFiles(shellType);
88
173
  // 检查是否已经有引用
89
174
  for (const configFile of configFiles) {
90
- if (fs.existsSync(configFile)) {
91
- const content = fs.readFileSync(configFile, 'utf8');
175
+ if (fse.pathExistsSync(configFile)) {
176
+ const content = fse.readFileSync(configFile, 'utf8');
92
177
  if (this.hasShellReference(content)) {
93
178
  return { updated: false, action: 'already exists' };
94
179
  }
@@ -128,17 +213,31 @@ class ShellManager {
128
213
  async addShellReference(configFilePath) {
129
214
  // 确保目录存在
130
215
  const dir = path.dirname(configFilePath);
131
- if (!fs.existsSync(dir)) {
132
- fs.mkdirSync(dir, { recursive: true });
133
- }
216
+ fse.ensureDirSync(dir);
134
217
  let content = '';
135
- if (fs.existsSync(configFilePath)) {
136
- content = fs.readFileSync(configFilePath, 'utf8');
218
+ if (fse.pathExistsSync(configFilePath)) {
219
+ try {
220
+ content = fse.readFileSync(configFilePath, 'utf8');
221
+ }
222
+ catch (error) {
223
+ if (error.code === 'EACCES' || error.code === 'EPERM') {
224
+ throw new Error(`无权限读取shell配置文件 ${configFilePath}`);
225
+ }
226
+ throw error;
227
+ }
137
228
  }
138
229
  // 添加对 ccmanrc 的引用
139
230
  const reference = this.generateShellReference();
140
231
  content += reference;
141
- fs.writeFileSync(configFilePath, content);
232
+ try {
233
+ await fse.writeFile(configFilePath, content, 'utf8');
234
+ }
235
+ catch (error) {
236
+ if (error.code === 'EACCES' || error.code === 'EPERM') {
237
+ throw new Error(`无权限修改shell配置文件 ${configFilePath}。\n建议:\n 1. 检查文件权限:chmod 644 ${configFilePath}\n 2. 或手动添加以下内容到该文件:\n${reference.trim()}`);
238
+ }
239
+ throw error;
240
+ }
142
241
  }
143
242
  /**
144
243
  * 生成 shell 引用代码
@@ -165,9 +264,9 @@ class ShellManager {
165
264
  let clearedAny = false;
166
265
  let lastError;
167
266
  // 1. 删除 ccmanrc 文件
168
- if (fs.existsSync(this.ccmanrcPath)) {
267
+ if (fse.pathExistsSync(this.ccmanrcPath)) {
169
268
  try {
170
- fs.unlinkSync(this.ccmanrcPath);
269
+ fse.removeSync(this.ccmanrcPath);
171
270
  clearedAny = true;
172
271
  }
173
272
  catch (error) {
@@ -179,7 +278,7 @@ class ShellManager {
179
278
  const configFiles = this.getShellConfigFiles(shellType);
180
279
  for (const configFile of configFiles) {
181
280
  try {
182
- if (fs.existsSync(configFile)) {
281
+ if (fse.pathExistsSync(configFile)) {
183
282
  await this.removeShellReference(configFile);
184
283
  clearedAny = true;
185
284
  }
@@ -208,12 +307,12 @@ class ShellManager {
208
307
  * 从配置文件中移除 shell 引用
209
308
  */
210
309
  async removeShellReference(filePath) {
211
- if (!fs.existsSync(filePath)) {
310
+ if (!fse.pathExistsSync(filePath)) {
212
311
  return;
213
312
  }
214
- const content = fs.readFileSync(filePath, 'utf8');
313
+ const content = fse.readFileSync(filePath, 'utf8');
215
314
  const cleanedContent = this.removeShellReferenceFromContent(content);
216
- fs.writeFileSync(filePath, cleanedContent);
315
+ await fse.writeFile(filePath, cleanedContent, 'utf8');
217
316
  }
218
317
  /**
219
318
  * 从内容中移除 shell 引用部分
@@ -303,15 +402,15 @@ export ${constants_1.CONFIG.ENV_VARS.AUTH_TOKEN}="${envVars.ANTHROPIC_AUTH_TOKEN
303
402
  */
304
403
  hasEnvVarsInShell() {
305
404
  // 检查 ccmanrc 文件是否存在
306
- if (fs.existsSync(this.ccmanrcPath)) {
405
+ if (fse.pathExistsSync(this.ccmanrcPath)) {
307
406
  return true;
308
407
  }
309
408
  // 检查 shell 配置文件中是否有引用
310
409
  const shellType = this.detectShell();
311
410
  const configFiles = this.getShellConfigFiles(shellType);
312
411
  for (const configFile of configFiles) {
313
- if (fs.existsSync(configFile)) {
314
- const content = fs.readFileSync(configFile, 'utf8');
412
+ if (fse.pathExistsSync(configFile)) {
413
+ const content = fse.readFileSync(configFile, 'utf8');
315
414
  if (this.hasShellReference(content)) {
316
415
  return true;
317
416
  }
@@ -326,7 +425,7 @@ export ${constants_1.CONFIG.ENV_VARS.AUTH_TOKEN}="${envVars.ANTHROPIC_AUTH_TOKEN
326
425
  const shellType = this.detectShell();
327
426
  const configFiles = this.getShellConfigFiles(shellType);
328
427
  // 找到第一个存在的配置文件
329
- const activeConfigFile = configFiles.find(file => fs.existsSync(file));
428
+ const activeConfigFile = configFiles.find(file => fse.pathExistsSync(file));
330
429
  if (!activeConfigFile) {
331
430
  return {
332
431
  success: false,
@@ -378,7 +477,7 @@ export ${constants_1.CONFIG.ENV_VARS.AUTH_TOKEN}="${envVars.ANTHROPIC_AUTH_TOKEN
378
477
  const shellType = this.detectShell();
379
478
  const configFiles = this.getShellConfigFiles(shellType);
380
479
  // 找到第一个存在的配置文件作为活动配置文件
381
- const activeConfigFile = configFiles.find(file => fs.existsSync(file));
480
+ const activeConfigFile = configFiles.find(file => fse.pathExistsSync(file));
382
481
  return {
383
482
  shellType,
384
483
  shellPath: process.env.SHELL || 'unknown',
@@ -1 +1 @@
1
- {"version":3,"file":"ShellManager.js","sourceRoot":"","sources":["../../src/shell/ShellManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShellManager.js","sourceRoot":"","sources":["../../src/shell/ShellManager.ts"],"names":[],"mappings":"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"}
@@ -2,36 +2,94 @@
2
2
 
3
3
  ## 📋 发布前准备
4
4
 
5
- 1. **设置 NPM Token**:参见 [setup-github-secrets.md](./setup-github-secrets.md)
5
+ 1. **设置 NPM Token**:参见 [npm-publish-guide.md](./npm-publish-guide.md)
6
6
  2. **确保工作目录干净**:`git status`
7
7
  3. **确保在主分支**:`git checkout main`
8
8
 
9
9
  ## 🚀 发布方式
10
10
 
11
- ### 方式一:交互式发布(推荐)
11
+ > 💡 **强烈推荐**: 使用新的模块化智能发布脚本,详见 [Scripts使用指南](./scripts-guide.md)
12
+
13
+ ### 🌟 方式一:智能发布脚本(强烈推荐)
14
+
15
+ #### 使用 smart-release-v3.sh
12
16
  ```bash
13
- # 交互选择版本类型
14
- pnpm run release:interactive
17
+ # 完整智能发布流程(推荐)
18
+ ./scripts/smart-release-v3.sh
19
+ # 或使用 npm script
20
+ pnpm run release:smart
21
+
22
+ # 跳过版本升级,使用当前版本
23
+ ./scripts/smart-release-v3.sh --skip-version
24
+
25
+ # 直接指定版本类型
26
+ ./scripts/smart-release-v3.sh --version-type minor
27
+
28
+ # 不监控发布状态(快速完成)
29
+ ./scripts/smart-release-v3.sh --no-monitor
30
+
31
+ # 查看帮助
32
+ ./scripts/smart-release-v3.sh --help
33
+ ```
34
+
35
+ #### ✨ 智能发布特性
36
+ - **智能未提交代码处理**: 3种处理选项(提交/暂存/取消)
37
+ - **智能版本推荐**: 基于git提交历史分析
38
+ - **实时发布监控**: 5分钟监控GitHub Actions、NPM、Release
39
+ - **完整链接输出**: 自动生成所有相关链接
40
+ - **模块化架构**: 每个步骤可独立测试和调试
41
+
42
+ ### 方式二:经典发布脚本
43
+
44
+ #### Scripts发布
45
+ ```bash
46
+ # 快速发布(日常推荐)
47
+ ./scripts/quick-release.sh patch # 修订版本
48
+ ./scripts/quick-release.sh minor # 次版本
49
+ ./scripts/quick-release.sh major # 主版本
50
+
51
+ # 完整发布流程(重要版本)
52
+ ./scripts/release.sh # 交互式完整流程
15
53
  ```
16
54
 
17
- ### 方式二:快速发布
55
+ #### NPM Scripts发布
18
56
  ```bash
57
+ # 交互选择版本类型
58
+ pnpm run release:interactive
59
+
19
60
  # 指定版本类型
20
61
  pnpm run release:patch # 0.0.1 → 0.0.2
21
62
  pnpm run release:minor # 0.0.1 → 0.1.0
22
63
  pnpm run release:major # 0.0.1 → 1.0.0
23
- ```
24
64
 
25
- ### 方式三:完整发布流程
26
- ```bash
27
- # 包含分支管理的完整流程
65
+ # 完整发布流程
28
66
  pnpm run release
29
67
  ```
30
68
 
31
- ### 方式四:本地发布(备用)
69
+ ### 方式三:本地发布(备用)
32
70
  ```bash
33
71
  # 直接发布到 NPM(跳过 GitHub Actions)
34
72
  pnpm run publish:local
73
+ # 或
74
+ ./scripts/publish-local.sh
75
+ ```
76
+
77
+ ## 🔧 独立模块使用
78
+
79
+ 模块化脚本支持独立使用,便于测试和调试:
80
+
81
+ ```bash
82
+ # 仅检查代码状态
83
+ ./scripts/modules/check-uncommitted.sh
84
+
85
+ # 仅进行版本升级
86
+ ./scripts/modules/version-bump.sh minor
87
+
88
+ # 仅创建tag并推送
89
+ ./scripts/modules/create-tag.sh
90
+
91
+ # 仅监控发布状态
92
+ ./scripts/modules/monitor-release.sh
35
93
  ```
36
94
 
37
95
  ## 📊 发布后验证
@@ -0,0 +1,221 @@
1
+ # Scripts 使用指南
2
+
3
+ 项目提供了多个发布和管理脚本,位于 `./scripts/` 目录下。现已升级为**模块化架构**,提供更灵活、专业的发布体验。
4
+
5
+ ## 📂 Scripts 目录结构
6
+
7
+ ### 🆕 模块化架构 (v3.0)
8
+
9
+ ```
10
+ scripts/
11
+ ├── modules/ # 独立功能模块
12
+ │ ├── check-uncommitted.sh # 智能未提交代码处理
13
+ │ ├── version-bump.sh # 智能版本提升选择
14
+ │ ├── create-tag.sh # 创建tag和提交
15
+ │ └── monitor-release.sh # 发布状态监控
16
+ ├── smart-release-v3.sh # 🌟 主控智能发布脚本
17
+ ├── release.sh # 完整发布流程(经典版本)
18
+ ├── quick-release.sh # 快速发布流程(经典版本)
19
+ └── publish-local.sh # 本地发布脚本(调试用)
20
+ ```
21
+
22
+ ## 🌟 模块化智能发布脚本(推荐)
23
+
24
+ ### `smart-release-v3.sh` - 主控智能发布脚本
25
+
26
+ **🎯 完全按照专业发布流程设计**,实现四个独立步骤的完美组合:
27
+
28
+ #### 📋 发布流程
29
+ 1. **检查工作目录状态** - 智能处理未提交代码
30
+ 2. **版本管理** - 可选择版本升级或使用现有版本
31
+ 3. **创建tag和提交** - 纯tag操作,触发GitHub Actions
32
+ 4. **监控发布状态** - 5分钟实时监控,自动确认成功
33
+
34
+ #### 🚀 使用方法
35
+
36
+ ```bash
37
+ # 完整智能发布流程
38
+ ./scripts/smart-release-v3.sh
39
+
40
+ # 跳过版本升级,使用当前版本
41
+ ./scripts/smart-release-v3.sh --skip-version
42
+
43
+ # 直接指定版本类型
44
+ ./scripts/smart-release-v3.sh --version-type minor
45
+
46
+ # 不监控发布状态
47
+ ./scripts/smart-release-v3.sh --no-monitor
48
+
49
+ # 查看帮助
50
+ ./scripts/smart-release-v3.sh --help
51
+ ```
52
+
53
+ #### ✨ 智能特性
54
+
55
+ - **智能未提交代码处理**: 3种处理选项(提交/暂存/取消)
56
+ - **智能版本推荐**: 基于git提交历史分析推荐合适版本
57
+ - **实时发布监控**: 监控GitHub Actions、NPM包、GitHub Release状态
58
+ - **完整链接输出**: 自动生成所有相关监控和访问链接
59
+ - **专业错误处理**: 每步都有错误检查和恢复提示
60
+
61
+ ## 🔧 独立模块脚本
62
+
63
+ 每个模块都可以独立运行,便于测试和调试:
64
+
65
+ ### 1. `modules/check-uncommitted.sh` - 代码状态检查
66
+
67
+ ```bash
68
+ # 检查工作目录状态
69
+ ./scripts/modules/check-uncommitted.sh
70
+ ```
71
+
72
+ **功能**:
73
+ - 检测未提交的更改
74
+ - 提供3种智能处理选项:提交、暂存、取消
75
+ - 给出清晰的操作指导
76
+
77
+ ### 2. `modules/version-bump.sh` - 版本管理
78
+
79
+ ```bash
80
+ # 交互式版本选择
81
+ ./scripts/modules/version-bump.sh
82
+
83
+ # 直接指定版本类型
84
+ ./scripts/modules/version-bump.sh patch
85
+ ./scripts/modules/version-bump.sh minor
86
+ ./scripts/modules/version-bump.sh major
87
+
88
+ # 测试模式(不执行实际升级)
89
+ ./scripts/modules/version-bump.sh test
90
+ ```
91
+
92
+ **功能**:
93
+ - 基于git提交历史的智能版本推荐
94
+ - 5种版本选择:patch、minor、major、prerelease、custom
95
+ - 版本预览和确认机制
96
+
97
+ ### 3. `modules/create-tag.sh` - Tag创建
98
+
99
+ ```bash
100
+ # 根据当前package.json版本创建tag
101
+ ./scripts/modules/create-tag.sh
102
+ ```
103
+
104
+ **功能**:
105
+ - 根据package.json版本号创建tag
106
+ - 不进行版本升级,纯tag操作
107
+ - 自动提交和推送,触发GitHub Actions
108
+
109
+ ### 4. `modules/monitor-release.sh` - 发布监控
110
+
111
+ ```bash
112
+ # 监控当前版本的发布状态
113
+ ./scripts/modules/monitor-release.sh
114
+ ```
115
+
116
+ **功能**:
117
+ - 5分钟超时的实时监控
118
+ - 并行检查GitHub Actions、NPM包、GitHub Release
119
+ - 输出完整的监控链接
120
+ - 生成发布状态总结报告
121
+
122
+ ## 📊 经典发布脚本
123
+
124
+ ### 1. `quick-release.sh` - 快速发布
125
+
126
+ **适用场景**: 日常开发中的小版本发布
127
+
128
+ ```bash
129
+ # 交互式选择版本类型
130
+ ./scripts/quick-release.sh
131
+
132
+ # 直接指定版本类型
133
+ ./scripts/quick-release.sh patch # 修订版本
134
+ ./scripts/quick-release.sh minor # 次版本
135
+ ./scripts/quick-release.sh major # 主版本
136
+ ```
137
+
138
+ ### 2. `release.sh` - 完整发布流程
139
+
140
+ **适用场景**: 重要版本发布,需要分支管理
141
+
142
+ ```bash
143
+ # 启动完整发布流程
144
+ ./scripts/release.sh
145
+ ```
146
+
147
+ **特点**:
148
+ - 创建专用的release分支
149
+ - 智能版本建议和详细changelog
150
+ - 支持prerelease和自定义版本
151
+
152
+ ## 🆚 版本对比
153
+
154
+ | 特性 | smart-release-v3.sh | 经典脚本 | 独立模块 |
155
+ |------|---------------------|----------|----------|
156
+ | **模块化设计** | ✅ | ❌ | ✅ |
157
+ | **发布监控** | ✅ 5分钟实时监控 | ❌ 仅提供链接 | ✅ |
158
+ | **智能代码处理** | ✅ 3种选项 | ❌ 直接拒绝 | ✅ |
159
+ | **参数支持** | ✅ 丰富的选项 | 🟡 基本支持 | ✅ |
160
+ | **错误恢复** | ✅ 专业级 | 🟡 基本 | ✅ |
161
+ | **可测试性** | ✅ 高 | 🟡 中等 | ✅ |
162
+
163
+ ## 💡 使用建议
164
+
165
+ ### 🎯 推荐使用场景
166
+
167
+ 1. **日常发布**: 使用 `smart-release-v3.sh` - 最完整的智能体验
168
+ 2. **快速测试**: 使用 `smart-release-v3.sh --no-monitor` - 跳过监控
169
+ 3. **仅升级版本**: 使用 `modules/version-bump.sh` - 独立版本管理
170
+ 4. **调试监控**: 使用 `modules/monitor-release.sh` - 独立测试监控功能
171
+ 5. **传统发布**: 使用经典脚本作为备用方案
172
+
173
+ ### 🚀 最佳实践
174
+
175
+ 1. **首次使用**: 先运行 `smart-release-v3.sh --help` 了解选项
176
+ 2. **测试环境**: 使用 `--no-monitor` 跳过监控,节省时间
177
+ 3. **版本规划**: 遵循[语义化版本](https://semver.org/lang/zh-CN/)规范
178
+ 4. **提交规范**: 使用[约定式提交](https://www.conventionalcommits.org/zh-hans/),获得智能版本推荐
179
+ 5. **模块测试**: 单独测试各模块功能,确保环境正确
180
+
181
+ ## 🔗 NPM Scripts 快捷方式
182
+
183
+ 在package.json中的快捷方式:
184
+
185
+ ```bash
186
+ # 智能发布(推荐)
187
+ pnpm run release:smart # = ./scripts/smart-release-v3.sh
188
+
189
+ # 经典发布
190
+ pnpm run release # = ./scripts/release.sh
191
+ pnpm run release:patch # = ./scripts/quick-release.sh patch
192
+ pnpm run release:minor # = ./scripts/quick-release.sh minor
193
+ pnpm run release:major # = ./scripts/quick-release.sh major
194
+
195
+ # 本地发布
196
+ pnpm run publish:local # = ./scripts/publish-local.sh
197
+ ```
198
+
199
+ ## ⚠️ 注意事项
200
+
201
+ ### 1. 环境要求
202
+ - ✅ Node.js 和 pnpm 已安装
203
+ - ✅ Git 仓库,工作目录相对干净
204
+ - ✅ NPM_TOKEN 已在 GitHub Secrets 中配置
205
+ - ✅ curl 已安装(用于发布状态监控)
206
+
207
+ ### 2. 权限设置
208
+ ```bash
209
+ # 给脚本添加执行权限(首次使用)
210
+ chmod +x scripts/**/*.sh
211
+ ```
212
+
213
+ ### 3. 故障排查
214
+ - **模块未找到**: 检查 `scripts/modules/` 目录是否存在
215
+ - **权限错误**: 运行 `chmod +x scripts/**/*.sh`
216
+ - **监控超时**: 5分钟后超时是正常的,请手动检查链接
217
+ - **版本冲突**: 检查 package.json 版本号是否正确
218
+
219
+ ---
220
+
221
+ 🎉 **推荐**: 立即体验 `./scripts/smart-release-v3.sh` 获得最佳的智能发布体验!