@vitarx/release-cli 1.0.1 → 1.0.2

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.
package/README.md CHANGED
@@ -106,6 +106,7 @@ release-cli major --tag-prefix "v" --release-count 5
106
106
 
107
107
  | 选项 | 缩写 | 描述 | 默认值 |
108
108
  |-----------------------|------|--------------------------|----------------|
109
+ | `--version` | `-v` | 显示版本信息 | - |
109
110
  | `--help` | `-h` | 显示帮助信息 | - |
110
111
  | `--dry-run` | `-d` | 试运行模式,不实际执行操作 | `false` |
111
112
  | `--preid` | - | 预发布版本标识符(alpha/beta/rc) | - |
@@ -122,7 +123,7 @@ release-cli major --tag-prefix "v" --release-count 5
122
123
  | `--context` | `-c` | 模板变量上下文文件 | - |
123
124
  | `--commit-path` | - | 只生成指定目录的提交日志 | - |
124
125
  | `--tag-prefix` | - | Git 标签前缀 | `v` |
125
- | `--verbose` | `-v` | 详细输出模式 | `false` |
126
+ | `--verbose` | - | 详细输出模式 | `false` |
126
127
  | `--release-count` | - | 生成的发布记录数量 | `0` |
127
128
  | `--package` | - | 指定要发布的包名/包相对路径 | - |
128
129
 
package/dist/release.js CHANGED
@@ -15,6 +15,7 @@ function parseArgs() {
15
15
  const result = {
16
16
  isDryRun: false, // 是否为试运行模式
17
17
  showHelp: false, // 是否显示帮助信息
18
+ showVersion: false, // 是否显示版本信息
18
19
  changelogPreset: 'angular', // 更改日志预设模板
19
20
  changelogInfile: 'CHANGELOG.md', // 更改日志输入文件
20
21
  changelogSameFile: true, // 是否使用同一文件
@@ -27,6 +28,9 @@ function parseArgs() {
27
28
  if (arg === '--help' || arg === '-h') {
28
29
  result.showHelp = true;
29
30
  }
31
+ else if (arg === '--version' || arg === '-v') {
32
+ result.showVersion = true;
33
+ }
30
34
  else if (arg === '--dry-run' || arg === '-d') {
31
35
  result.isDryRun = true;
32
36
  }
@@ -75,7 +79,7 @@ function parseArgs() {
75
79
  else if (arg === '--tag-prefix' && args[i + 1]) {
76
80
  result.changelogTagPrefix = args[++i];
77
81
  }
78
- else if (arg === '--verbose' || arg === '-v') {
82
+ else if (arg === '--verbose') {
79
83
  result.changelogVerbose = true;
80
84
  }
81
85
  else if (arg === '--package' && args[i + 1]) {
@@ -215,8 +219,14 @@ async function publishPackage(pkgDir, packageManager, isDryRun = false, args) {
215
219
  */
216
220
  export async function main() {
217
221
  const args = parseArgs();
222
+ // 显示版本信息
223
+ if (args.showVersion) {
224
+ const { version } = JSON.parse(fs.readFileSync(path.join(path.dirname(path.dirname(import.meta.url)), 'package.json'), 'utf-8'));
225
+ log.info('release-cli v' + version);
226
+ process.exit(0);
227
+ }
228
+ console.log(chalk.cyan('📦 Release CLI - NPM包发布工具'));
218
229
  if (args.showHelp) {
219
- console.log(chalk.cyan('📦 Release CLI - NPM包发布工具'));
220
230
  console.log('');
221
231
  console.log(chalk.yellow('使用方法:'));
222
232
  console.log(' release-cli [版本类型] [选项]');
@@ -234,6 +244,7 @@ export async function main() {
234
244
  console.log('');
235
245
  console.log(chalk.yellow('选项:'));
236
246
  console.log(' -h, --help - 显示帮助信息');
247
+ console.log(' -v, --version - 输出版本号');
237
248
  console.log(' -d, --dry-run - 试运行模式,不实际执行操作,(默认false)');
238
249
  console.log(' --preid <标识符> - 预发布版本标识符(alpha/beta/rc)');
239
250
  console.log(' --preset <预设> - conventional-changelog预设(默认: angular)');
@@ -249,7 +260,7 @@ export async function main() {
249
260
  console.log(' -c, --context <文件> - 模板变量上下文文件');
250
261
  console.log(' --commit-path <目录> - 只生成指定目录的提交日志');
251
262
  console.log(' --tag-prefix <前缀> - Git 标签前缀(默认: v)');
252
- console.log(' -v, --verbose - 详细输出模式');
263
+ console.log(' --verbose - 详细输出模式');
253
264
  console.log(' --release-count <数量> - 生成的发布记录数量(默认: 0)');
254
265
  console.log(' --package <包名> - 指定要发布的包名/包相对路径');
255
266
  console.log('');
@@ -267,9 +278,9 @@ export async function main() {
267
278
  }
268
279
  const packageManager = detectPackageManager();
269
280
  const isWorkspace = isWorkspaceProject();
270
- log.info(`当前包管理器: ${packageManager}`);
271
- log.info(`当前工作目录: ${process.cwd()}`);
272
- log.info(`当前运行模式: ${isDryRun ? 'dry-run' : 'publish'}`);
281
+ log.info('当前包管理器', packageManager);
282
+ log.info('当前工作目录', process.cwd());
283
+ log.info('当前运行模式', isDryRun ? 'dry-run' : 'publish');
273
284
  if (isWorkspace) {
274
285
  log.info('检测到 workspace 项目');
275
286
  const packages = getWorkspacePackages();
@@ -280,7 +291,10 @@ export async function main() {
280
291
  let selectedPackage;
281
292
  if (args.packageName) {
282
293
  // 如果指定了包名,查找对应的包(支持按包名或目录名匹配)
283
- selectedPackage = packages.find((pkg) => pkg.name === args.packageName || path.basename(pkg.path) === args.packageName);
294
+ selectedPackage = packages.find((pkg) => {
295
+ console.log(`正在匹配 ${path.basename(pkg.path)}`);
296
+ return pkg.name === args.packageName || path.basename(pkg.path) === args.packageName;
297
+ });
284
298
  if (!selectedPackage) {
285
299
  log.error(`未找到包名为 ${args.packageName} 的包`);
286
300
  process.exit(1);
package/dist/type.d.ts CHANGED
@@ -59,4 +59,6 @@ export interface ReleaseConfig {
59
59
  changelogVerbose?: boolean;
60
60
  /** 是否显示帮助信息 */
61
61
  showHelp: boolean;
62
+ /** 是否显示版本信息 */
63
+ showVersion: boolean;
62
64
  }
package/dist/utils.d.ts CHANGED
@@ -20,7 +20,7 @@ export declare function checkGitStatus(): boolean;
20
20
  * @property warn - 警告日志
21
21
  */
22
22
  export declare const log: {
23
- readonly info: (message: string) => void;
23
+ readonly info: (message: string, ...text: string[]) => void;
24
24
  readonly success: (message: string) => void;
25
25
  readonly error: (message: string) => void;
26
26
  readonly warn: (message: string) => void;
package/dist/utils.js CHANGED
@@ -49,17 +49,22 @@ export function checkGitStatus() {
49
49
  * @property warn - 警告日志
50
50
  */
51
51
  export const log = {
52
- info: (message) => {
53
- console.log(chalk.cyan(`Info:${message}`));
52
+ info: (message, ...text) => {
53
+ if (text.length) {
54
+ console.log(chalk.cyan(`📢 ${message}: `), ...text);
55
+ }
56
+ else {
57
+ console.log(`📢 ${message}`);
58
+ }
54
59
  },
55
60
  success: (message) => {
56
- console.log(chalk.green(`Success:✅ ${message}`));
61
+ console.log(chalk.green(`✅ ${message}`));
57
62
  },
58
63
  error: (message) => {
59
- console.log(chalk.red(`Error:❌ ${message}`));
64
+ console.log(chalk.red(`❌ ${message}`));
60
65
  },
61
66
  warn: (message) => {
62
- console.log(chalk.yellow(`Warn:⚠️ ${message}`));
67
+ console.log(chalk.yellow(`⚠️ ${message}`));
63
68
  }
64
69
  };
65
70
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitarx/release-cli",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "A CLI tool for automated npm package release with workspace support",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",