每周npm模块源码解读:configstore
2018-12-04 字数统计:1.2k 字 阅读时长 ≈ 1 分钟

补周2018.11.26 ~ 2018.12.2

前言

模块名:configstore

github: https://github.com/yeoman/configstore

描述:一个能读取和持久化配置的模块

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

正文

Configstore 有三个参数 packageName , defaultsoptions

packageName 表示记录该实例的一个标记。

defaults 表示初始化默认的配置。

options 表示一些选项配置。

首先得到存储路径,然后判断是否有 defaults 来初始化默认配置。

存储路径的判断是根据选项配置,如果定义了 globalConfigPath 为 true,则存储为 packageName/config.json ,否则为 configstore/packageName.json

最后根据 option.configPath 是否存在来判断是采用 configPath 还是默认的路径。

接着就是将类 Configstore 实例化,有一些实例方法。如set,get,has,delete,clear等方法。

这些方法主要用到了模块 dot-prop 用作数据操作。

结语

可以联想localStorage,sessionStorage的原理。