12factor-config

中文文档
2.0.0发布于 2018/02/06MIT零依赖近 30 天下载 3079

从环境中读取您的应用程序配置 .

中文使用文档
文档目录6 节
  1. 稳定
  2. 概要
  3. 有效值
  4. 我做什麽
  5. 作者
  6. 许可证

12 要素配置

一个只读取环境的配置模块 。 对于节点J,这意味着 process.env。 。 。 .

注1:我们永远不会使用 NODE_ENV 在任何例子中,因为每个环境 应具体说明它需要的一切,任何事物都不应取决于它是否属于一个特定群体 环境(例如“开发”、“测试”、“储存”或“生产”).

说明2:这个包件被认为稳定,因此很少有人承担这些责任 日子不是无所作为的迹象,只是稳定。 请为错误使用并提交 PR 。 新设 还将考虑特征.

稳定

请注意,该项目已经完成。 问题将得到解决。 新设 必要时可添加特性。 否则它不会有更多的释放 - 但是 请放心,我将支持它和你。 这个项目没有死,只是休息而已.

概要

首先设定一些您程序会寻找的环境变量 。 你用不着 设置任何有“ 默认” 的设置, 但您需要设置任何“ 需要” .

$ export REDIS_URL=redis://user:password@hostname:port/db
$ export APPNAME_PORT=8080

然后,在你的节目中:

var config = require('12factor-config');

var cfg = config({
    redisUrl : {
        env      : 'REDIS_URL',
        type     : 'string', // default
        required : true,
    },
    logfile : {
        env      : 'APPNAME_LOG_FILE',
        type     : 'string',
        default  : '/var/log/appname.log',
        required : true,
    },
    port : {
        env      : 'APPNAME_PORT',
        type     : 'integer',
        default  : '8000',
        required : true,
    },
    debug : {
        env      : 'APPNAME_DEBUG',
        type     : 'boolean',
        default  : false,
    },
    env : {
        // you really shouldn't use this, but some people/packages do
        env      : 'NODE_ENV',
        type     : 'enum',
        values   : [ 'development', 'test', 'stage', 'production', ],
    },
});

console.log(cfg);

输出诸如:

{
  redisUrl: 'redis://user:password@hostname:port/db',
  logfile: '/var/log/appname.log',
  port: 8080,
  debug: false,
  env: 'development'
}

最好在环境变量前加上与应用程序相关的前缀 名称如上面后面的配置 vars 所示。 这主要是为了给您命名 而不是踩踏 而不是已经定义的其他人。 当然你不需要在本地名中使用前缀.

有效值

当您有某些类型时,会进行一些转换,从字符串中获取(因为 环境只包含字符串),输入所需的值.

  • boolean - 允许大案或小案
    • -"真","不","是","y","on","1"
    • 假-"假","f","no","n","off","0"
    • 任何其它值抛出

我做什麽

我通常有一个 lib/cfg.js 例如:

var config = require('12factor-config');

var cfg = config({
    // ... environment config here ...
});

module.exports = cfg;

通过这样做,应用程序中的所有其他文件都可以只是 require('lib/cfg.js') 并获取 同样的配置.

作者

作者: 安德鲁·奇尔顿 - 说吧 微博。 。 。 .

许可证

麻省理工学院 http://chilts.mit-license.org/2013/ (中文(简体) )

(结束)

版本与发布记录

12factor-config 共发布 9 个版本,首次发布于 2014/01/10;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.0.0latest2018/02/068 年前
1.3.12016/10/2110 年前
1.3.02016/10/0710 年前
1.2.12016/07/1910 年前
1.2.02016/07/1910 年前
1.1.02015/12/1110 年前

关于 12factor-config 的常见问题

12factor-config 是什么?

从环境中读取您的应用程序配置 .

如何安装 12factor-config?

在项目目录运行 npm install 12factor-config,或使用 pnpm add / yarn add / bun add。

12factor-config 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/12factor-config 是否存在。

12factor-config 可以商用吗?

12factor-config 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

12factor-config 的下载量有多少?

根据 npm 官方下载统计,12factor-config 在 2026/10/04 – 2026/11/02 这 30 天内被下载 3,079 次,日均约 103 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

12factor-config 还在维护吗?

最新版本 2.0.0 发布于 2018/02/06(8 年前);至今共发布 9 个版本,其中过去 12 个月发布了 0 个;首次发布于 2014/01/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。