Confman - 针对「Node 应用」的配置文件加载模块
Jul 29, 2016一句话介绍
Confman 是一个强大的配置文件加载器,无论你喜欢 yaml 、cson、json、properties、plist、ini、toml、xml 还是 js,都能满足你的愿望,并且更加简单、更加强大。
支持的特性
- 支持多种配置文件格式,默认包括 yaml/cson/json/properties/plist/ini/toml/xml/js
- 支持配置文件相互引用,无论何种格式都可以「引用其它任意格式」的配置文件
- 支持「基于目录」的多文件配置
- 支持「环境配置」,区分加载生产、测试等不同的配置
- 可以非常方便的「扩展」新的配置文件格式
- 可以「混合使用」不同的配置文件格式
- 内置多种「指令」,并可轻易的扩展新的指令
现在就安装
|
|
来几个示例
不同的环境配置
目录
index.js
启动应用
通过指定 NODE_ENV 可以加载指定的「环境配置文件 config.prod.yaml」,并和「默认配置 config.yaml」进行合并,
如果有相同的配置,「环境配置会覆盖默认配置」
配置文件相互引用
文件一: test1.yaml
文件二: test2.json
$require 可以在任意支持的格式的配置文件中使用
基于目录的多文件配置
目录结构
index.js
添加新格式
其实,多数情况你不需要这么做,如果确实有需要,你可这样编写一个自定义 loader
|
|
注册自定义 loader
新的扩展名
方式一,映射到一个已经添加的 loader
方式二,直接映射到一个未添加的自定义 loader
内置的指令
如上边用到的 $require,Confman 允许使用指令完成某些配置,内置的指令包括:
- $require 引用指令,用于引用其它配置文件,参数为相对于当前文件的相对路径或绝对路径
- $calc 计算指令,用于计算一个表达式,如 $calc root.baseUrl+”/xxx” (表达式中可用变量有 root:根对象,parent:父对象,self:当前对象)
- $read 读取指令,用于读取一个文本文件,参数为相对于当前文件的相对路径或绝对路径
示例 example.yaml
假如 test1.json 的内容为 “name”: “test1”,test2.txt 的内容为 my name is test2,
通过 Confman.load(‘./example 加载 example 的结果为:
|
|
自定义指令
编写一个自定义指令的代码如下:
|
|
注册自定义指令
其它的问题
- 新的建议或 Bug 请使用 isseus 反馈
- 贡献代码,请使用 Pull Request,需一并提交相关测试并且不能低于现有覆盖率
现在或将来有可能会用到?那你应该去加个 Star
GitHub : https://github.com/Houfeng/confman