ora.js

338 阅读1分钟

ora

log-symbols传送门

ora.js传送门

知是行之始、行是知之成

终端中的loading

loading

安装

$ npm install ora

使用

import ora from 'ora';
const spinner = ora('Loading unicorns').start();
setTimeout(() => {
    spinner.color = 'yellow';
    spinner.text = 'Loading rainbows';
}, 1000);

执行会报错、无法使用es module 需要在package.json中配置type: module

具体api在如下demo中使用

import chalk from 'chalk';
import logSymbols from 'log-symbols'; // 前置图标库
import ora from 'ora';

const spinner = ora({
	discardStdin: false,
	text: 'loading',// 文本
  // 不传入使用默认的dots
	// spinner: {
  //   interval: 80,
  //   frames: ['+', '-', '+']
  // },
});

const spinnerDiscardingStdin = ora({
	text: 'start build',
	spinner: {
    interval: 80,
    frames: ['-', '+', '-']
  },
});

// 开始一个
spinnerDiscardingStdin.start();

// 一秒后显示该spinner 成功 会显示一条信息并且该信息有前置的成功图标
setTimeout(() => {
	spinnerDiscardingStdin.succeed();// 当前spinner成功并结束掉
}, 1000);

// 开启第二个spinner
setTimeout(() => {
	spinnerDiscardingStdin.start();//开启一个新的spinner
}, 2000);

// 第二个spinner成功、开启第三个spinner
setTimeout(() => {
	spinnerDiscardingStdin.succeed(); // 结束掉第二个
	spinner.start();
}, 3000);

setTimeout(() => {
	spinner.color = 'yellow'; // 修改颜色
	spinner.text = `Loading ${chalk.red('rainbows')}`; // 修改文本
}, 4000);

// 改变样式
setTimeout(() => {
	spinner.color = 'green';
	spinner.indent = 2;
	spinner.text = 'Loading with indent';
}, 5000);

// 改变样式
setTimeout(() => {
	spinner.indent = 0;
	spinner.spinner = 'moon';
	spinner.text = 'Loading with different spinners';
}, 6000);

setTimeout(() => {
	spinner.prefixText = chalk.dim('[info]');
	spinner.spinner = 'dots';
	spinner.text = 'Loading with prefix text';
}, 8000);

setTimeout(() => {
	spinner.prefixText = '';
	spinner.suffixText = chalk.dim('[info]');
	spinner.text = 'Loading with suffix text';
}, 10_000);

setTimeout(() => {
	spinner.prefixText = chalk.dim('[info]');
	spinner.suffixText = chalk.dim('[info]');
	spinner.text = 'Loading with prefix and suffix text';
}, 12_000);

setTimeout(() => {
	spinner.stopAndPersist({
		prefixText: '',
		suffixText: '',
		symbol: logSymbols.info,
		text: 'Stopping with different text!',
	});
}, 14_000);

ora.gif