# @darkobits/env 中文文档

规范地址：https://npmcn.com/package/%40darkobits/env/

版本：2\.0\.0
npm 元数据更新时间：2023-07-15T10:22:12.108Z
中文译文更新时间：2026-11-11T11:56:00.706Z
软件包许可：Hippocratic

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

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

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

- 包体积（解压后）：28.3 kB，6 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2018-06-27T08:04:28.145Z
- 最新版本发布：2023-07-15T10:22:11.931Z
- 近 30 天下载量：5918（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

功能环境可变得到器/parser.

## 安装

```sh
npm install @darkobits/env
```

也可以使用：`pnpm add @darkobits/env`、`yarn add @darkobits/env`、`bun add @darkobits/env`

## README

![](https://github.com/darkobits/env/assets/441546/9fce66f2-a41e-47ef-8b99-7de225f98a31)

[![](https://img.shields.io/npm/v/@darkobits/env.svg?style=flat-square)](https://www.npmjs.com/package/@darkobits/env) [![](https://img.shields.io/github/actions/workflow/status/darkobits/env/ci.yml?style=flat-square)](https://github.com/darkobits/env/actions?query=workflow%3Aci) [![](https://img.shields.io/depfu/darkobits/env?style=flat-square)](https://depfu.com/repos/github/darkobits/env) [![](https://img.shields.io/static/v1?label=commits&message=conventional&style=flat-square&color=398AFB)](https://conventionalcommits.org/) [![](https://img.shields.io/static/v1?label=license&message=hippocratic&style=flat-square&color=753065)](https://firstdonoharm.dev/)

函数获取器/参数 `process.env`。 。 。 .

## 特征

-   将数字式的数值铸成数字.
-   铸币 `"true"` 财务报告和审定财务报表 `"false"` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}给布林斯的.
-   (原始内容存档于2018-03-27). Parses JSON.
-   丢弃,如果 `process` 或者说 `process.env` 是非对象.
-   (备选) 如果变量未定义则丢出 .

## 安装

```bash
$ npm i @darkobits/env
```

## 使用

此包的默认导出是以下签名的函数:

```ts
interface Env {
  (variableName: string, strict: boolean = false): any;
  has(variableName: string): boolean;
  eq(variableName: string, value: any, strict: boolean = false): boolean;
}
```

铭记价值观 `process.env` [可能只是字符串](https://nodejs.org/api/process.html#process_process_env)假设 `process.env` 看起来像这样:

```json
{
  "FOO": "foo",
  "BAR": "42",
  "BAZ": "true",
  "QUX": "false",
  "JSON": "{\"kittens\": true}"
}
```

```ts
import env from '@darkobits/env';

env('FOO')         //=> 'foo'
typeof env('FOO')  //=> 'string'

env('BAR')         //=> 42
typeof env('BAR')  //=> 'number'

env('BAZ')         //=> true
typeof env('BAZ')  //=> 'boolean'

env('QUX')         //=> false
typeof env('BAZ')  //=> 'boolean'

env('JSON')        //=> {kittens: true}
typeof env('JSON') //=> 'object'

env('NOAP')        //=> undefined
env('NOAP', true)  //=> throws

// Throws if process.env has been tampered-with.
process.env = null;
env('FOO')         //=> throws

// Throws if process has been tampered-with, or if process doesn't exist.
process = null;
env('FOO')         //=> throws
```

### `env.has`

此帮助的上游是 `Object.keys(process.env).includes(x)`返回时返回 `true` 如果提供的可变名称存在于 `process.env` 财务报告和审定财务报表 `false` 否则。 当您不关心变量的值是多少时, 不管是设定与否, 都是有益的 .

用我们的例子 `process.env` 上面的对象 :

```ts
env.has('FOO') //=> true
env.has('UNICORNS') //=> false
```

### `env.eq`

此帮助的上游是 `env(variableName) === value`返回时返回 `true` 如果提供的可变名称存在于 `process.env` 且与所提供的价值相等 `false` 否则。 需要快速测试环境变量值时有用 。 第三个 `strict` 参数可能设置为 `true` 导致 `env.eq` 如果提供的变量不存在于 `process.env`。 。 。 .

**说明:** 当与非原始对象(对象、阵列)进行比较时, env.eq 将序列化所提供的 `value` 并比较环境变量的序列(re:字符串)形式.

用我们的例子 `process.env` 上面的对象 :

```ts
import env from '@darkobits/env';

env.eq('FOO', 'foo') //=> true
env.eq('BAR', 42)    //=> true
env.eq('BAR', null)  //=> false
env.eq('BAZ', true)  //=> true
env.eq('JSON', {kittens: true}) //=> true
```

  
[![](https://user-images.githubusercontent.com/441546/102322726-5e6d4200-3f34-11eb-89f2-c31624ab7488.png)](https://npmcn.com/package/%40darkobits/env/#readme-top)

## 常见问题

### @darkobits/env 是什么？

功能环境可变得到器/parser\.

### 如何安装 @darkobits/env？

在项目目录运行 npm install @darkobits/env，或使用 pnpm add / yarn add / bun add。

### @darkobits/env 支持 TypeScript 吗？

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

### @darkobits/env 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @darkobits/env 可以商用吗？

@darkobits/env 使用 Hippocratic 许可。声明的许可为 Hippocratic，请阅读许可原文确认使用条件。以上为概括，不构成法律意见，请以许可原文为准。

### @darkobits/env 的下载量有多少？

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

### @darkobits/env 还在维护吗？

最新版本 2\.0\.0 发布于 2023/07/15（3 年前）；至今共发布 13 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/06/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

