安装
$ npm install ora
使用
const ora = require('ora');
const spinner = ora('Loading unicorns').start();
setTimeout(() => {
spinner.color = 'yellow';
spinner.text = 'Loading rainbows';
}, 1000);
API
ora(text)
ora(options)
如果传入字符串,等价于 options.text
.
options Type: object
text Type: string
在转圈图后面显示的文字.
prefixText Type: string | () => string
文本或者一个返回文本的函数,改文本用在旋转图形之前。
spinner
Type: string | object
默认: 'dots'
可填写值看provided spinners . 如果你想看不同spinner有什么一样,看本仓库中的 example.js
. 在Windows上, 它表现为 line
spinner,因为 Windows 命令行不支持 Unicode.
或者如下对象:
{ interval: 80, // Optional frames: ['-', '+', '-'] }
color
Type: string
默认值: 'cyan'
值: 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray'
spinner 的颜色.
hideCursor
Type: boolean
Default: true
设置成 false
阻止 Ora 隐藏光标.
indent
Type: number
默认值: 0
缩进多少个空格
interval
Type: number
默认值: 100
每一帧的间隔.
Spinners 提供了推荐的间隔, 一般无需指定.
stream
Type: stream.Writable
默认: process.stderr
输出流.
你可以设置成 process.stdout
.
isEnabled
Type: boolean
强制开启或关闭spinner. 如果没指定, 流进来的时候,默认会开启.
注意{isEnabled: false}并不是不输出任何东西
. 只是不输出图像, 颜色,和其他 ansi 转义码. 它仍然会输出文本.
isSilent
Type: boolean
Default: false
关闭所有的 spinner 和输出文本. 所有的输出都会被抑制 isEnabled
会被认为是 false
.
discardStdin
Type: boolean
Default: true
禁止输入,除了Ctrl+C. 这个防止输入导致 spinner 抖动, 按Enter产生的换行,缓存输入内容.
这个在Windows 上没有影响,因为它没有合适的方法阻止输入.
实例方法
.start(text?)
启动spinner. 返回实例. 如果提供了text,会设置text值.
.stop()
停止并清除 spinner. 返回实例
.succeed(text?)
停止 spinner, 会变成绿色 ✔
并设置相关文本. 返回实例.
.fail(text?)
停止 spinner, 会变成红色 ✖
并设置相关文本. 返回实例
.warn(text?)
停止 spinner, 会变成黄色 ⚠
并设置相关文本. 返回实例
.info(text?)
停止 spinner, ,会变成蓝色 ℹ
并设置相关文本. 返回实例
.isSpinning
实例目前是否在旋转中.
.stopAndPersist(options?)
停止并改变 symbol 或 text. 返回实例.
options
Type: object
symbol
Type: string
Default: ' '
用于替换spinner 的符号.
text
Type: string
Default: Current 'text'
symbol后的文字
prefixText
Type: string
默认: 当前的 prefixText
symbol前的文本.
.clear()
清除图像, 返回一个实例.
.render()
手动渲染一帧. 返回改实例.
.frame()
获取一个新帧.
.text
改变图像后的文本.
.prefixText
改变spinner前的文字.
.color
改变spinner的颜色.
.spinner
改变 spinner.
.indent
改变缩进
ora.promise(action, text)
ora.promise(action, options)
以promise方式启动一个spinner . spinner 在调用 .succeed()或
的时候停止. 返回spinner 实例.
action
Type: Promise
FAQ
如何改变文本颜色
使用 Chalk:
const ora = require('ora');
const chalk = require('chalk');
const spinner = ora(`Loading ${chalk.red('unicorns')}`).start();
为什么 spinner 停顿了?
js 是单线程的, 同步操作会阻塞改线程, 包括spinner 动画. 尽量采用异步方式.