Skip to content

Latest commit

 

History

History
193 lines (142 loc) · 5.78 KB

README.zh-Hans.md

File metadata and controls

193 lines (142 loc) · 5.78 KB

Config-SP

Node Version Npm Package Version License NodeJS Package Dependencies Build Status Code Climate Test Coverage

一个简单的,零依赖的类库。用来帮助你为类库或者模块管理自身的配置。

它将帮助你定义一系列默认配置(如在 default.js 中),然后递归地扩展默认配置(比如在 local.js 或者其他文件中)。

当你想要开发一个应用,而不是类库时,强烈推荐你使用 lorenwest/node-config。这是一个非常赞的类库,它提供了许多有用的功能。

TOC

安装(Installation)

npm install --save config-sp

快速上手(Quick Start)

  1. 创建一个目录。

    mkdir config
  2. 编辑默认配置,如 vim config/default.js

    {
        a: {
            b: {
                c: 'hello',
                c2: 'world',
                c3: 1,
            },
            d: [1, 2, 3],
        },
        e: false,
        f: null,
        g: 1,
    }
  3. 编辑本地配置,如 vim config/local.js

    {
        a: {
            b: {
                c: 'bye',
                c3: 0,
            },
            d: [],
        },
        e: true,
        g: undefined,
        h: null,
    }
  4. 编辑主文件,来指示默认配置和本地配置的位置,如 vim config/index.js.

    var Config = require('config-sp');
    // default.js 和 local.js 是相对与 __dirname 的路径。
    var config = Config.load(__dirname, ['default.js', 'local.js'], {
        ignores: 'local.js',   // local.js 允许不存在
    });
    
    // config 将会是这样:
    // {
    //     a: {
    //         b: {
    //             c: 'bye',
    //             c2: 'world',
    //             c3: 0,
    //         },
    //         d: [],
    //     },
    //     e: true,
    //     f: null,
    //     g: 1,
    //     h: null,
    // }
    
    // 获取子配置的值
    var c = config.get('a.b.c');
    // 或者这样
    c = config.a.b.c;
    
    var a = config.get('a');
    // 通过 `get` 方法返回的子配置,同样带有 `get` 方法
    c = a.get('b.c');
    
    var b = config.a.b;
    // c = b.get('c');  // 这将会抛错,因为 `b` 没有 `get` 方法
    
    // var d = config.get('d');  // 这将会抛错,因为 `d` 的值是 `undefined`

Config 对象

load 以及 create 函数将返回一个 Config 对象,它将带有 get 方法,可以用来获取子配置的值。

当使用 get 方法查询到的值为 undefined,它将抛出异常,用来帮助捕捉打字错误以及字段缺失。

保留字(Reserved Words)

以下名称不能作为配置的键(key):

  • get

环境变量

CONFIG_SP_LOAD_FILE_MISSING

支持以下值:

  • 'warn': 以 console.warn 打印错误信息
  • 'error': 以 console.error 打印错误信息
  • 'ignore': 既不打印错误信息,也不抛出错误

如果没有设置 CONFIG_SP_LOAD_FILE_MISSING,加载文件缺失时将抛出错误。

API

请看 http://adoyle.me/Ero.js/

版本(Versioning)

版本迭代遵循 SemVer 2.0.0 的规则。

但是,当主版本号是零(0.y.z),一切随时都可能有不兼容的修改。这处于开发初始阶段,其公共 API 是不稳定的。

关于 SemVer 的更多信息,请访问 http://semver.org/。

版权声明(Copyright and License)

Copyright (c) 2015-2016 ADoyle. The project is licensed under the Apache License Version 2.0.

See the LICENSE file for the specific language governing permissions and limitations under the License.

See the NOTICE file distributed with this work for additional information regarding copyright ownership.