Confman - 针对「Node 应用」的配置文件加载模块

一句话介绍

confman 是一个强大的配置文件加载器,无论你喜欢 yaml 、cson、json、properties、plist、ini、toml、xml 还是 js,都能满足你的愿望,并且更加简单、更加强大。

支持的特性

  1. 支持多种配置文件格式,默认包括 yaml/cson/json/properties/plist/ini/toml/xml/js

  2. 支持配置文件相互引用,无论何种格式都可以「引用其它任意格式」的配置文件

  3. 支持「基于目录」的多文件配置

  4. 支持「环境配置」,区分加载生产、测试等不同的配置

  5. 可以非常方便的「扩展」新的配置文件格式

  6. 可以「混合使用」不同的配置文件格式

现在就安装

$ npm install confman --save

来几个示例

不同的环境配置

目录

app├── index.js├── config.dev.yaml├── config.prod.yaml└── config.yaml

index.js

const confman = require('confman');
const configs = confman.load(${__dirname}/config);
console.log(configs);
启动应用

$ NODE_ENV=prod node index.js
通过指定 NODE_ENV 可以加载指定的「环境配置文件 config.prod.yaml」,并和「默认配置 config.yaml」进行合并,
如果有相同的配置,「环境配置会覆盖默认配置」

配置文件相互引用

文件一: test1.yaml

name: test1

可以使用 $require 引用其它文件

child: $requrie ./test2
文件二: test2.json

{
"name": "test2",
"child": "$require other-file"
}
$require 可以在任意支持的格式的配置文件中使用

基于目录的多文件配置

目录结构

├── config│   ├── conn.yaml│   ├── index.yaml│   └── mvc.yaml├── config.dev│   └── conn.yaml├── config.prod│   └── conn.yaml└── index.js

index.js

const confman = require('confman');
const configs = confman.load(${__dirname}/config);
console.log(configs);

添加新格式

其实,多数情况你不需要这么做,如果确实有需要,你可这样编写一个自定义 loader

module.exports = {
extname: '.xxx',
load: function (configPath) {
//...
return configs;
}
};
添加自定义 loader

confman.loaders.push(require('your-loader-path'));

新的扩展名

方式一,映射到一个已经支持(指已注册的 loader)的 loader

confman.loaders.push({
extname: '.xxx',
loader: '.yaml'
});
方式二,映射到一个自定义 loader

confman.loaders.push({
extname: '.xxx',
loader: require('your-loader-path')
});
现在或将来有可能会用到?那你应该去加个 Star
GitHub : https://github.com/Houfeng/co...

关键字:node, JavaScript, config, YAML

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部