# @btravstack/config 中文文档

规范地址：https://npmcn.com/package/%40btravstack/config/

版本：0\.58\.0
npm 元数据更新时间：2026-11-07T21:12:26.421Z
中文译文更新时间：2026-11-08T17:37:49.277Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40btravstack/config
原文对照：https://npmcn.com/package/%40btravstack/config/?lang=original
项目主页：https://github.com/btravstack/btravstack#readme
源码仓库：https://github.com/btravstack/btravstack

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

- 包体积（解压后）：71.1 kB，7 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22
- 运行依赖：0 个
- peer 依赖：unthrown ^5\.0\.0，@btravstack/di ^0\.58\.0
- 首次发布：2026-08-25T16:16:29.239Z
- 最新版本发布：2026-11-07T21:12:26.109Z
- 近 30 天下载量：12093（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：62（近 12 个月 62 个）

## 中文简介

配置 @ btravstack/ di 的十二因子方式: 来自环境的输入值, 验证一次, 像其它服务一样注入

## 安装

```sh
npm install @btravstack/config
```

也可以使用：`pnpm add @btravstack/config`、`yarn add @btravstack/config`、`bun add @btravstack/config`

## README

# @ btravstack/ 配置

> 配置十二要素方式,用于 [`@btravstack/di`](https://npmcn.com/package/%40btravstack/di): 键入 受环境约束的数值,当图形构建时验证, 和其他服务一样注射。 一个糟糕的环境是一个模型 `ConfigInvalid` 指定每个违法变量——其中 [`@btravstack/core`](https://npmcn.com/package/%40btravstack/core)是因为 `runMain` 报告 `startFailed` 事件和 退出代码 `78`。 。 。 .

📖 **[文档](https://btravstack.github.io/btravstack/how-to/configure-from-the-environment)** • 妇女 [参考文献](https://btravstack.github.io/btravstack/reference/config) • 妇女 [API 参考](https://btravstack.github.io/btravstack/api/config/)

```sh
pnpm add @btravstack/config @btravstack/di unthrown
```

`@btravstack/di` 财务报告和审定财务报表 `unthrown` 是同伴的依赖关系; 软件包取决于 没有别的了.. `Config.object` 是一个手卷式标准Schema。 节点 `>=22`。 。 。 .

## 作为港口的环境的一部分

```ts
import { Config, Env } from "@btravstack/config";
import { Module, Provider } from "@btravstack/di";

const databaseConfig = Config.provider("DatabaseConfig")(
  Config.object({
    url: Config.string("DATABASE_URL"),
    poolSize: Config.integer("DATABASE_POOL_SIZE", {
      min: 1,
      max: 64,
      default: 8,
    }),
  }),
);

const Persistence = Module("Persistence")({
  needs: [Env],
  provides: [
    databaseConfig,
    Provider(Database)({
      inject: { config: databaseConfig.port },
      acquire: ({ config }) => openDatabase(config.url),
      release: (db) => db.close(),
    }),
  ],
  exports: [Database],
});
```

`Config.provider("DatabaseConfig")(schema)` 薄荷港口——其服务是 schema的输出, `{ url: string; poolSize: number }` 手拿回来 供应商携带: `databaseConfig.port` 所依赖的列表 道诸相. 一个是公共API的切片——一个启动器 `HttpConfig`,其他哪个 软件包名称 – 声明其端口并经过该类 : `Config.provider(HttpConfig)(schema)`。 。 。 .

`Env` 这是什么 `Config.provider` 读取。 下 `@btravstack/core` 内核 把它提供给它所有的图.. `process.env`,或 `StartOptions.env` 页:1 测试。 任何地方,你自己提供: `Provider(Env)({ inject: {}, value: process.env })`。 。 。 .

## 字段

| 外地 | 数值 |
| --- | --- |
| `Config.string(VAR, { default? })` | 非空字符串 |
| `Config.integer(VAR, { min?, max?, default? })` | 以十进制表示的整数,包含 |
| `Config.boolean(VAR, { default? })` | 旗帜 : `true`编号 :`false`, (中文(简体) ), `1`编号 :`0`, (中文(简体) ), `yes`编号 :`no`, (中文(简体) ), `on`编号 :`off` |
| `Config.port(VAR, { default? })` | 整个数字在 `0..65535` —— 说 `0` 包括: |
| `Config.url(VAR, { default? })` | a URL, 保留为已写入; 错误的 URL 被命名为已编辑的用户信息 |
| `Config.list(VAR, { min?, default? })` | 以逗号分隔的列表、 已剪切的条目和已空的条目 |

未设置的变量取其 `default` (或 `is required`页:1 **设为空或 空白** 一个是错误,绝不是默认; `abc`, (中文(简体) ), `3.5`, (中文(简体) ), `0x1F90` 财务报告和审定财务报表 域外值被命名; 每个字段在回答前被读取, 所以一个验证 立即点出每个错. `Config.pinned(value, field)` 如何启动者 选项比环境,每个字段,以及字段带有规则的地方 关于VALUE(`integer`, (中文(简体) ), `port`针被它检查,所以绑住 部署不能跨越,也不是一个构成根也可以接上. `Config.string` 故意不带: “ 设定但空” 是关于生的 变量,其中被绑定 `""` 是一个决定(`http({ cors: false })` 针头 就是这样。 任何标准Schema(`zod`, (中文(简体) ), `valibot`, (中文(简体) ), `arktype`(d) 被接受以代替 `Config.object`。 。 。 .

每个字段都命名其类型中的变量,一个模块的需要带有 名称最多 `start`页:1 `env` 接受模块配置读取的内容, 不需要任何默认或默认的指针,并拒绝错误或未读 调用时变量. `StartEnvironment<typeof Root>` 类型 : 从电话。 全数 语义学, `ConfigInvalid`信息与资讯 `ConfigFieldInvalid` 正在运行中 [文档网站](https://btravstack.github.io/btravstack/reference/config)。 。 。 .

## 许可证

[麻省理工学院](https://npmcn.com/package/%40btravstack/config/LICENSE) 贝诺伊特旅行社

## 常见问题

### @btravstack/config 是什么？

配置 @ btravstack/ di 的十二因子方式: 来自环境的输入值, 验证一次, 像其它服务一样注入

### 如何安装 @btravstack/config？

在项目目录运行 npm install @btravstack/config，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：unthrown（^5\.0\.0）、@btravstack/di（^0\.58\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @btravstack/config 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @btravstack/config 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @btravstack/config 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @btravstack/config 可以商用吗？

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

### @btravstack/config 的下载量有多少？

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

### @btravstack/config 还在维护吗？

最新版本 0\.58\.0 发布于 2026/11/08（今天）；至今共发布 62 个版本，其中过去 12 个月发布了 62 个；首次发布于 2026/08/26。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

