# 12factor-config 中文文档

规范地址：https://npmcn.com/package/12factor-config/

版本：2\.0\.0
npm 元数据更新时间：2022-06-12T14:05:41.644Z
中文译文更新时间：2026-11-06T13:41:35.863Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/12factor-config
原文对照：https://npmcn.com/package/12factor-config/?lang=original
项目主页：https://github.com/chilts/12factor-config
源码仓库：https://github.com/chilts/12factor-config

## 关键信息（来自 npm 元数据）

- TypeScript 类型：未声明
- 运行依赖：0 个
- 首次发布：2014-01-09T21:36:13.237Z
- 最新版本发布：2018-02-06T10:56:17.771Z
- 近 30 天下载量：3079（2026-10-04 至 2026-11-02，npm 官方下载统计）
- 已发布版本数：9（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install 12factor-config
```

也可以使用：`pnpm add 12factor-config`、`yarn add 12factor-config`、`bun add 12factor-config`

## README

# 12 要素配置

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

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

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

## 稳定

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

## 概要

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

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

然后,在你的节目中:

```javascript
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` 例如:

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

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

module.exports = cfg;
```

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

## 作者

作者: [安德鲁·奇尔顿](https://chilts.org/) - 说吧 [微博](https://twitter.com/andychilton)。 。 。 .

## 许可证

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

(结束)

## 常见问题

### 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 和提交记录判断。

