node实现终端加载中

发布时间 2023-08-28 10:54:53作者: spongeCoder

简介

在node开发脚手架之类的工具中,我们可能会用到进度条或者百分比数字进度展示,但是使用console的话会每次都单独占一行,所以想要看看别的框架是怎么实现的;

这里是借鉴了ora这个第三方node包,然后把主要逻辑给提取出来(代码比较短)。

ora github地址

上代码

const fs = require("fs");
const process = require("process")

let count = 1;

setInterval(() => {
    process.stderr.clearLine(1):      // 清除第一行的输出
    process.stderr.cursorTo(0);        // 光标指向下标0的位置
    process.stderr.write(count + "%")  // 输出新的内容
    count++;
},1000)

其实关键就是 process.stderr 这个对象的 应用。