2025/06/04
CLIにスピナーを表示させたい
自作したスクリプトを実行しているときの待ち時間に「処理中...」のようなものを表示させたくて調べてみました。
「cli-spinner」というモジュールがよさそうでしたのでこちらを試してみました。
インストール
まずは以下のコマンドでインストールします。
bunを使用していますがnpmやyarnでもOKです。
bun install cli-spinner
実装
スクリプトを実行させたらスピナーを表示させ、5秒後に完了するような簡単なスクリプトを作成してみます。
import { setTimeout } from 'node:timers/promises';
// cli-spinnerの読み込み
const Spinner = require('cli-spinner').Spinner;
// デフォルトのスピナーのアニメーション間隔を設定
Spinner.setDefaultSpinnerDelay(250);
// デフォルトのスピナーアニメーションを設定
Spinner.setDefaultSpinnerString('|/-\\')
const spinner = new Spinner('処理中.. %s');
spinner.start();
await setTimeout(5000);
spinner.stop(true);
console.log("処理完了!");
実行してみるとターミナル上で動作していることが分かると思います。
bun run cli-spinner-sample.ts