Confman - 针对「Node 应用」的配置文件加载模块
2016-07-26 23:36
567 查看
一句话介绍
confman 是一个强大的配置文件加载器,无论你喜欢 yaml 、cson、json、properties、plist、ini、toml、xml 还是 js,都能满足你的愿望,并且更加简单、更加强大。支持的特性
支持多种配置文件格式,默认包括 yaml/cson/json/properties/plist/ini/toml/xml/js支持配置文件相互引用,无论何种格式都可以「引用其它任意格式」的配置文件
支持「基于目录」的多文件配置
支持「环境配置」,区分加载生产、测试等不同的配置
可以非常方便的「扩展」新的配置文件格式
可以「混合使用」不同的配置文件格式
现在就安装
$ 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.yamlname: 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)的 loaderconfman.loaders.push({ extname: '.xxx', loader: '.yaml' });
方式二,映射到一个自定义 loader
confman.loaders.push({ extname: '.xxx', loader: require('your-loader-path') });
相关文章推荐
- 重启Ubuntu后Hadoop的namenode起不来的解决办法
- 什么是中间件,nodejs的概念
- 24. Swap Nodes in Pairs
- node 图片上传功能
- nodejs安装express成功,但是使用不了的解决方法。
- NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
- hadoop namenode ha--手动切换(转)
- Html5+NodeJS——拖拽多个文件上传到服务器
- 有关javascript与nodejs面向对象的编程总结
- 基于Nodejs的自动化工具Gulp学习
- nodejs、gulp调试工具node-inspector使用
- 精通Node.js: 你应该阅读的书籍
- nodejs开发cms系统第一篇之用户登录
- node.js
- LeetCode 19. Remove Nth Node From End of List
- Node.js Stream(流)
- Node.js Buffer(缓冲区)
- 安装ionic报错 { [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/ionic']解决方法
- 222. Count Complete Tree Nodes
- nodejs--Express