当前位置: 首页 > news >正文

cli-progress:终极命令行进度条工具,让你的终端应用更专业

cli-progress:终极命令行进度条工具,让你的终端应用更专业

【免费下载链接】cli-progress:hourglass: easy to use progress-bar for command-line/terminal applications项目地址: https://gitcode.com/gh_mirrors/cl/cli-progress

在开发命令行应用时,一个直观的进度条能极大提升用户体验。cli-progress 作为一款简单易用的命令行进度条工具,为 Node.js 开发者提供了强大的进度可视化能力,让你的终端应用瞬间变得更加专业和友好。

为什么选择 cli-progress?

cli-progress 是一个专为命令行/终端应用设计的进度条工具,它凭借以下特性在众多同类库中脱颖而出:

  • 简单易用:无需复杂配置,几行代码即可实现专业进度条
  • 高度可定制:支持自定义进度条格式、颜色和动画效果
  • 多模式支持:同时提供单进度条和多进度条模式
  • 预设主题:内置多种视觉风格,满足不同场景需求
  • 轻量级:仅依赖 string-width 一个第三方库,安装快速,运行高效

快速开始:安装与基础使用

安装步骤

通过 npm 或 yarn 可以轻松安装 cli-progress:

npm install cli-progress --save # 或 yarn add cli-progress

如果你需要从源码构建,可以克隆仓库:

git clone https://gitcode.com/gh_mirrors/cl/cli-progress cd cli-progress npm install

基础示例

下面是一个最简单的使用示例,创建一个基本的进度条:

const cliProgress = require('cli-progress'); // 创建进度条实例,使用经典阴影主题 const bar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_classic); // 启动进度条,总进度值为 200,起始值为 0 bar.start(200, 0); // 在你的应用中更新进度值 bar.update(100); // 完成后停止进度条 bar.stop();

这段代码将创建一个美观的进度条,直观展示任务进度。

核心功能展示

1. 单进度条模式

单进度条模式适用于大多数简单场景,你可以自定义其外观和显示信息:

通过自定义格式字符串,你可以展示进度百分比、剩余时间、当前值/总值等信息:

const bar = new cliProgress.SingleBar({ format: '进度: |{bar}| {percentage}% | ETA: {eta}s | {value}/{total}', barCompleteChar: '\u2588', barIncompleteChar: '\u2591', hideCursor: true });

2. 多进度条模式

当你需要同时跟踪多个任务进度时,多进度条模式就能派上用场:

创建和管理多个进度条非常简单:

// 创建多进度条容器 const multibar = new cliProgress.MultiBar({ clearOnComplete: false, hideCursor: true, format: ' {bar} | {filename} | {value}/{total}', }, cliProgress.Presets.shades_grey); // 添加两个进度条 const bar1 = multibar.create(200, 0); const bar2 = multibar.create(1000, 0); // 分别更新进度 bar1.increment(); bar2.update(20, {filename: "data.txt"}); // 完成后停止所有进度条 multibar.stop();

3. 内置预设主题

cli-progress 提供了多种预设主题,满足不同的视觉需求:

  • legacy:cli-progress v1.3.0 风格
  • shades-classic:使用 Unicode 背景阴影的进度条
  • shades-grey:灰色背景阴影进度条
  • rect:Unicode 矩形进度条

你可以直接使用这些预设,也可以在其基础上进行自定义:

// 使用灰色阴影预设 const bar = new cliProgress.SingleBar({}, cliProgress.Presets.shades_grey);

高级用法

自定义进度条格式

cli-progress 允许你通过格式字符串完全自定义进度条的显示内容,支持以下占位符:

  • {bar}:进度条主体
  • {percentage}:百分比进度
  • {total}:总进度值
  • {value}:当前进度值
  • {eta}:预计剩余时间(秒)
  • {duration}:已用时间(秒)
  • {eta_formatted}:格式化的预计剩余时间
  • {duration_formatted}:格式化的已用时间
  • {<payloadKey>}:自定义负载数据

示例:

const bar = new cliProgress.SingleBar({ format: '下载中 |{bar}| {percentage}% | {value}/{total} 字节 | 速度: {speed} KB/s' }); // 启动时设置初始负载数据 bar.start(1000, 0, {speed: "0.0"}); // 更新时更新负载数据 bar.update(500, {speed: "125.5"});

事件监听

cli-progress 实例继承自 EventEmitter,可以监听各种事件:

bar.on('progress', (value, total, payload) => { // 进度更新时触发 console.log(`当前进度: ${value}/${total}`); }); bar.on('complete', () => { // 进度完成时触发 console.log('任务完成!'); });

更多事件详情请参考 事件文档。

实际应用场景

cli-progress 适用于各种需要展示进度的命令行工具:

  • 文件上传/下载工具
  • 数据处理和转换程序
  • 长时间运行的任务
  • 批量处理工具
  • 安装程序

项目提供了多个示例代码,展示了不同场景下的使用方法,你可以在 examples/ 目录中找到它们。

总结

无论是开发简单的命令行工具还是复杂的终端应用,cli-progress 都能为你提供专业、美观的进度条功能。它的易用性和灵活性使得集成到现有项目中变得非常简单,同时丰富的自定义选项又能满足各种特殊需求。

立即尝试 cli-progress,为你的命令行应用增添一份专业感和用户友好性吧!

【免费下载链接】cli-progress:hourglass: easy to use progress-bar for command-line/terminal applications项目地址: https://gitcode.com/gh_mirrors/cl/cli-progress

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/459591/

相关文章:

  • 性能优于Suno v5,腾讯清华联合发布 SongGeneration2:攻克咬字跑调难题,支持本地部署
  • VerticalViewPager高级技巧:解决ScrollView与ViewPager冲突问题
  • 革命性API开发:learn-graphql如何解决RESTful痛点?
  • 如何用Android_boot_image_editor修改vendor_boot.img中的设备树 blob (dtb)
  • GPT-SoVITS语音合成技术升级:告别金属噪音,拥抱高清音质新时代
  • Fractal Sound Explorer终极用户手册:8种分形类型与核心操作技巧
  • 二十年磨一剑,只为听见纯粹原音 ——哈尔滨博士达汽车音响:黑龙江汽车音响与隔音降噪的殿堂级标杆 黑龙江汽车音响改装行业NO.1 消费者100%满意好评店铺 - 木火炎
  • DCM CRM融合模式PFC:策略与技术创新协力驱动企业发展
  • GPT-SoVITS v4音频合成革命:从金属噪音到广播级音质的跨越
  • 如何快速入门Data-Structures-and-Algorithms:初学者必备的完整教程
  • Ottertune高级技巧:自定义目标指标与性能优化策略
  • 深入理解计算机体系结构:amILearningEnough必备基础知识
  • Antigravity Kit实战案例:从零构建智能Web应用
  • Matlab异步电机调速系统闭环控制及矢量控制算法实现:参考文献综述与技术分享
  • Walkoff安全最佳实践:保护工作流数据与访问控制策略
  • Game Icons图标分类指南:按艺术家和主题高效查找资源
  • AtomGit 2月:春节档模型 0day 首发体验活动圆满结束;G-Star 热门组织年度运营报告发布!
  • 从安装到实战:WALKOFF自动化框架完整使用手册(附流程图解)
  • 后端开发(自己写接口,从0到1)
  • Postlite扩展开发:如何为自定义SQLite函数添加Postgres兼容层
  • Data-Structures-and-Algorithms完整路线图:从基础到高级的学习路径
  • ST.js性能优化指南:提升JSON转换效率的6个实用技巧
  • py12306:简单高效的12306智能抢票助手终极指南
  • Java开发者必备:GitHub-API完全指南——从入门到精通的终极教程
  • 一键实现有声书转换:从电子书到沉浸式听书体验的完整指南
  • LightGBM R包终极指南:从零开始掌握银行客户预测实战
  • 如何使用WishFish创建钓鱼链接:完整教程与安全警示
  • DRAKVUF Sandbox高级配置指南:解锁隐藏的10个实用功能
  • APIJSON:重新定义前后端协作模式的JSON驱动框架
  • 为什么选择Sizes?iOS界面测试效率提升10倍的秘密武器