NodeJS 如何在终端程序中显示进度图标?

5ssjco0h  于 2023-01-12  发布在  Node.js
关注(0)|答案(2)|浏览(150)

我想写一个命令行程序,它将显示UNICODE字符,这些字符将在一行的左侧“动画化”。我如何使用node.js来实现这一点,以获得您在下图中看到的复选标记和UNICODE动画?这些字符是什么?我如何编写指令来覆盖该行的第一个字符?

qkf9rpyu

qkf9rpyu1#

使用此npm库
https://www.npmjs.com/package/cli-spinners
像这样实现:

const cliSpinners = require('cli-spinners');

console.log(cliSpinners.dots);
ajsxfq5m

ajsxfq5m2#

您可以在节点中构建自己的微调器,方法是像这样写入stdout

import { stdout } from "process"

function startSpinner() {
    const characters = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏']
    const cursorEsc = {
        hide: '\u001B[?25l',
        show: '\u001B[?25h',
    }
    stdout.write(cursorEsc.hide)

    let i = 0;
    const timer = setInterval(function () {
        stdout.write("\r" + characters[i++]);
        i = i >= characters.length ? 0 : i;
    }, 150);

    return () => {
        clearInterval(timer)
        stdout.write("\r")
        stdout.write(cursorEsc.show)
    }
}

然后像这样调用该函数-下面是一个运行4秒然后结束的示例

const stopSpinner = startSpinner();

setTimeout(() => {
    stopSpinner()
    console.log("done")
},4000)

进一步阅读

相关问题