每周npm模块源码解读:ora
2018-09-13 字数统计:1.1k 字 阅读时长 ≈ 1 分钟

补 周2018.9.3 ~ 2018.9.9

前言

模块名:ora

github: https://github.com/sindresorhus/ora

描述:提供更友好的配置式的终端spinner

适合人群:至少看过一遍源码

正文

定义了类 ora ,并定义了其成员变量和成员方法。

成员变量用一种可配置的形式来实现整个类该如何显示。如颜色,文字,光标的隐藏,每个多少时间换一个 frame 也就是 spinner 的形式。

成员方法则提供了 start , stop , succeedwarn 等。
spinner 的变化是通过一个 setInterval 来实现,通过流的形式打印到终端上。

总体来说比较简单,但细细发现有很多东西可以学习,模块 readline , process , TTY ,虽然无法准确的了解每个细节,但也知道了一些。并且整个类的设计也是可以学习的。

结语

仔细阅读了源码,发现作者考虑的很周到,也试过用 ora 进行 webpack 打包的标志。
思考了一下如果自己去实现呢,估摸着也就,startstop 了,估计也不会用 class 的方式。