confman 是一個強大的配置文件加載器,不管你喜歡 yaml 、cson、json、properties、plist、ini、toml、xml 仍是 js,都能知足你的願望,而且更加簡單、更增強大。node
$ npm install confman --save
目錄git
app ├── index.js ├── config.dev.yaml ├── config.prod.yaml └── config.yaml
index.jsgithub
const confman = require('confman'); const configs = confman.load(`${__dirname}/config`); console.log(configs);
啓動應用npm
$ NODE_ENV=prod node index.js
經過指定 NODE_ENV
能夠加載指定的「環境配置文件 config.prod.yaml」,並和「默認配置 config.yaml」進行合併, 若是有相同的配置,「環境配置會覆蓋默認配置」json
文件一: test1.yamlmvc
name: test1 #能夠使用 $require 引用其它文件 child: $requrie ./test2
文件二: test2.jsonapp
{ "name": "test2", "child": "$require other-file" }
$require
能夠在任意支持的格式的配置文件中使用測試
目錄結構ui
├── config │ ├── conn.yaml │ ├── index.yaml │ └── mvc.yaml ├── config.dev │ └── conn.yaml ├── config.prod │ └── conn.yaml └── index.js
index.jscode
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/confman