@via-cli/process-tools
v0.0.2
Published
Process and CLI utilities including command execution, async operations, and CLI spinners
Downloads
3
Maintainers
Readme
@via-cli/process-tools
进程和命令行工具函数库,为 CLI 工具提供进程执行、异步操作和命令行交互等实用功能。
特性
- 🚀 现代化 ESM - 使用 ES 模块和 TypeScript
- 🛠️ 类型安全 - 完整的 TypeScript 类型定义
- 🧪 全面测试 - 使用 Vitest 进行单元测试
- ⚡ 高性能 - 专注于进程和异步操作
- 🔧 CLI 友好 - 专为命令行工具设计
安装
npm install @via-cli/process-tools
# 或
pnpm add @via-cli/process-tools
# 或
yarn add @via-cli/process-tools使用
import {
exec,
execAsync,
sleep,
spinnerStart
} from '@via-cli/process-tools';API 文档
进程工具
exec(command: string, args?: string[], options?: ExecOptions)
执行命令并返回子进程。
const child = exec('node', ['--version']);
child.on('exit', (code) => {
console.log(`Process exited with code: ${code}`);
});execAsync(command: string, args?: string[], options?: ExecOptions): Promise<number>
异步执行命令并等待完成。
try {
const exitCode = await execAsync('node', ['--version']);
console.log(`Command completed with exit code: ${exitCode}`);
} catch (error) {
console.error('Command failed:', error);
}异步工具
sleep(timeout?: number): Promise<void>
延迟执行,默认 1000 毫秒。
async function example() {
console.log('Start');
await sleep(1000); // 等待1秒
console.log('After 1 second');
}命令行工具
spinnerStart(message: string, spinnerString?: string): SpinnerInstance
启动命令行旋转动画。
const spinner = spinnerStart('Loading...');
// 执行一些异步操作
setTimeout(() => {
spinner.stop();
}, 3000);开发
# 安装依赖
pnpm install
# 构建
pnpm build
# 开发模式(监听变化)
pnpm dev
# 运行测试
pnpm test
# 监听测试
pnpm test:watch
# 生成测试覆盖率报告
pnpm test:coverage
# 清理构建文件
pnpm clean技术栈
- TypeScript - 类型安全的开发体验
- ESM - 现代化的模块系统
- tsup - 快速的 TypeScript 构建工具
- Vitest - 快速的单元测试框架
- cli-spinner - 命令行旋转动画
许可证
MIT
更新日志
查看 CHANGELOG.md 了解详细的版本变更。
