# @arthur-lobo/zod-env 中文文档

规范地址：https://npmcn.com/package/%40arthur-lobo/zod-env/

版本：1\.1\.0
npm 元数据更新时间：2026-10-26T19:17:35.913Z
中文译文更新时间：2026-11-09T23:44:57.778Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40arthur-lobo/zod-env
原文对照：https://npmcn.com/package/%40arthur-lobo/zod-env/?lang=original

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

- 包体积（解压后）：8.5 kB，6 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：zod ^4\.3\.6
- 首次发布：2026-03-16T00:30:23.734Z
- 最新版本发布：2026-10-26T19:17:32.972Z
- 近 30 天下载量：1695（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 3 个）

## 中文简介

用 zod 装入并验证您的嵌入.

## 安装

```sh
npm install @arthur-lobo/zod-env
```

也可以使用：`pnpm add @arthur-lobo/zod-env`、`yarn add @arthur-lobo/zod-env`、`bun add @arthur-lobo/zod-env`

## README

# 佐德信封

用于装入和验证环境变量的 TypeScript 库 [佐德语Name](https://zod.dev/),为环境配置提供强而安全的类型验证.

## 安装

```bash
bun add @arthur-lobo/zod-env zod
# or
npm install @arthur-lobo/zod-env zod
```

`zod` 是一个对等依赖,所以它必须安装在库旁.

## 说明

`ZodEnv` 允许您定义 Zod schemas 来验证环境变量,确保它们的值格式正确,并在必要时提供默认值. 它支持同步操作和同步操作,并允许您定义如何 `.env` 必须装入.

## 基本用途

### 同步类 : `ZodEnv`

```typescript
import { z } from 'zod';
import { ZodEnv } from '@arthur-lobo/zod-env';

const schema = z.object({
  PORT: z.coerce.number().default(3000),
  DATABASE_URL: z.string(),
  DEBUG: z.coerce.boolean().default(false),
});

const env = new ZodEnv({
  schema,
  getEnv: () => process.env, // or any function that returns an object with the variables like `import.meta.env` when using vite to build your frontend
});

// Access validated values
console.log(env.get('PORT')); // 3000 (or the value of process.env.PORT if defined)
console.log(env.get('DATABASE_URL')); // validated string
```

### 同步类 : `AsyncZodEnv`

```typescript
import { z } from 'zod';
import { AsyncZodEnv } from '@arthur-lobo/zod-env';

const schema = z.object({
  API_KEY: z.string(),
  TIMEOUT: z.coerce.number().default(5000),
});

const env = new AsyncZodEnv({
  schema,
  getEnv: async () => {
    await someAsyncOperation();
    return process.env;
  },
});

// Access validated values asynchronously
const apiKey = await env.get('API_KEY');
const timeout = await env.get('TIMEOUT');
```

### 正在装入.env 文件

您可以自动加载 `.env` 使用 Node.js 的文件 `loadEnv` 函数 :

```typescript
import { loadEnvFile } from 'node:process';

const env = new ZodEnv({
  schema: z.object({
    SECRET_KEY: z.string(),
  }),
  loadEnv: loadEnvFile, // Loads the .env file
  getEnv: () => process.env,
});

console.log(env.get('SECRET_KEY')); // Validated value from .env
```

对于同步操作:

```typescript
const env = new AsyncZodEnv({
  schema: z.object({
    SECRET_KEY: z.string(),
  }),
  loadEnv: async () => loadEnvFile(), // Loads .env asynchronously
  getEnv: async () => process.env,
});
```

## Schema 实例

```typescript
import { z } from 'zod';

// Basic schema with default values
const basicSchema = z.object({
  PORT: z.coerce.number().default(3000),
  HOST: z.string().default('localhost'),
  DEBUG: z.coerce.boolean().default(false),
});

// Schema with custom validations
const advancedSchema = z.object({
  DATABASE_URL: z.string().url(),
  JWT_SECRET: z.string().min(32, 'JWT secret must be at least 32 characters'),
  MAX_CONNECTIONS: z.coerce.number().min(1).max(100),
  ALLOWED_ORIGINS: z.string().transform(str => str.split(',')).pipe(z.array(z.string().url())),
});
```

## 福利

-   **强类型验证**:使用Zod来确保环境变量的格式是正确的.
-   **默认值**: Zod schema中默认值的原生支持.
-   **灵活性**: 任何环境变量源的工程(process.env,导入.meta.env,自定义文件等).
-   **.env 支持**: 与 `.env` 通过Node.js的文件 `loadEnvFile`。 。 。 .
-   **自动同步/同步**:根据需要选择同步操作或同步操作.
-   **类型脚本**:完全输入,提供自动完成和类型检查.

## 常见问题

### @arthur-lobo/zod-env 是什么？

用 zod 装入并验证您的嵌入\.

### 如何安装 @arthur-lobo/zod-env？

在项目目录运行 npm install @arthur-lobo/zod-env，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：zod（^4\.3\.6）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @arthur-lobo/zod-env 支持 TypeScript 吗？

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

### @arthur-lobo/zod-env 支持 ESM 还是 CommonJS？

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

### @arthur-lobo/zod-env 可以商用吗？

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

### @arthur-lobo/zod-env 的下载量有多少？

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

### @arthur-lobo/zod-env 还在维护吗？

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

