Skip to content

输出组件

cliff 提供了一整套终端输出组件 — 无需 chalk,无需额外库。

基本输出

ts
import { log, success, warn, error, info } from '@cliffx/ui';

ui.log('正在处理文件...');     // │ 正在处理文件...
ui.success('构建完成!');      // ✔ 构建完成!
ui.warn('未找到配置文件');     // ⚠ 未找到配置文件
ui.error('连接失败');          // ✖ 连接失败
ui.info('使用默认设置');       // ℹ 使用默认设置

分区标题

ts
import { section } from '@cliffx/ui';

ui.section('部署');
// 部署
// ────

表格

显示带自动对齐的表格数据:

ts
import { table } from '@cliffx/ui';

const results = [
  { name: 'main.js', size: '42K', time: '1.2s' },
  { name: 'vendor.js', size: '128K', time: '3.5s' },
  { name: 'styles.css', size: '18K', time: '0.3s' },
];

ui.table(results, ['name', 'size', 'time']);

输出:

┌───────────┬──────┬──────┐
│ name      │ size │ time │
├───────────┼──────┼──────┤
│ main.js   │ 42K  │ 1.2s │
│ vendor.js │ 128K │ 3.5s │
│ styles.css│ 18K  │ 0.3s │
└───────────┴──────┴──────┘

自定义表头

ts
ui.table(results, ['name', 'size', 'time'], {
  headers: ['文件', '大小', '耗时'],
});

stdout 与 stderr

  • ui.logui.successui.warnui.error — 输出到 stderr(状态消息)
  • ui.stdout — 输出到 stdout(可被管道的数据输出)
  • ui.table — 输出到 stdout(可管道)
ts
// 状态消息 → stderr
ui.log('处理中...');

// 数据输出 → stdout(可被管道)
ui.stdout(JSON.stringify(result));

颜色工具

也提供底层颜色函数:

ts
import { c, red, green, blue, yellow, cyan, gray, dim, bold, underline } from '@cliffx/ui';

// 链式构建器
console.log(c('成功!').green().bold().toString());

// 直接函数
console.log(red('错误信息'));
console.log(green('OK'));
console.log(blue('提示'));
console.log(gray('元数据'));
console.log(dim('次要文本'));
console.log(bold('重要'));
console.log(underline('链接'));

MIT Licensed