# @emulators/core 中文文档

规范地址：https://npmcn.com/package/%40emulators/core/

版本：0\.13\.1
npm 元数据更新时间：2026-11-08T22:07:43.584Z
中文译文更新时间：2026-11-13T16:16:26.557Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40emulators/core
原文对照：https://npmcn.com/package/%40emulators/core/?lang=original
项目主页：https://emulate.dev/
源码仓库：https://github.com/vercel-labs/emulate

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

- 包体积（解压后）：406 kB，26 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-03-26T20:34:37.605Z
- 最新版本发布：2026-11-08T22:07:43.302Z
- 近 30 天下载量：639300（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 19 个）

## 中文简介

HTTP服务器,内存存储器,插件接口,以及模拟服务插件的中间软件.

## 安装

```sh
npm install @emulators/core
```

也可以使用：`pnpm add @emulators/core`、`yarn add @emulators/core`、`bun add @emulators/core`

## README

# @ 模拟器/ 核心

HTTP服务器,内存存储器,插件接口,以及模拟服务插件的中间软件.

部分 [模拟](https://github.com/vercel-labs/emulate) ——为CI和无网络沙盒提供本地出入口替换服务.

内部HTTP层基于 [浩诺](https://hono.dev/)'是API和设计. 谢和田由介和上野贡献. 见 [第三次议会 NoTICES.md](https://github.com/vercel-labs/emulate/blob/main/THIRD_PARTY_NOTICES.md) 为了Hono的版权和麻省理工学院许可通知,也包含在这个npm包中.

## 安装

```bash
npm install @emulators/core
```

## 概览

核心提供共享的基础设施 `@emulators/*` 服务插件基于 :

-   **存储** 普通的内存商店,有打字机 `Collection<T>` 支持 CRUD 、 索引、 过滤和页码
-   **服务器** 自动端口管理的HTTP服务器; `serve` 监听 `127.0.0.1` 默认并接受明示 `hostname` 网络访问
-   **中间软件** ——无记名证书认证,错误处理,CORS
-   **用户** 共享授权/同意的页面渲染与捆绑字体
-   **持久性** ——用于状态耐久性的可插接保存/装入适配器

## 持久性

### 文件持久性

对于本地开发,使用内置文件适配器:

```typescript
import { filePersistence } from '@emulators/core'

persistence: filePersistence('.emulate/state.json')
```

### 自定义适配器

任何对象 `load` 财务报告和审定财务报表 `save` 方法行之有效。 添加 `initialize` 当某项服务产生持久身份时:

```typescript
const kvAdapter = {
  async load() { return await kv.get('emulate-state') },
  async save(data: string) { await kv.set('emulate-state', data) },
  async initialize(data: string) { // atomic create-or-read
    await kv.set('emulate-state', data, { nx: true })
    return (await kv.get('emulate-state'))!
  },
}
```

持久性适配器在冷起(负载)和每次突变请求后被调用(save). 保存通过内部排队来序列化,以防止种族条件.

## 链接

-   [完整文档](https://emulate.dev/)
-   [GitHub 图像](https://github.com/vercel-labs/emulate)

## 自定义仿真器

传递创建的定义 `defineEmulator` 从 `emulate` 改为 `services[name].emulator` 在框架适配器。 同一定义贯穿于国家综合指数和 `createEmulator({ service: definition, listen: false })` 在测试。 自定义条目接受可选的检查员和持久性适配器. 流化反应机构在完成或取消时会持续状态变化,在清理前会重置并关闭取消活动流. 附加的 Set- Cookie 头部保留已响应的 cookie 。 保持状态 在定义的国营工厂, 并等待操作员 `close()` 在测试。 见 [自定义仿真器指南](https://emulate.dev/docs/custom-emulators)。 。 。 .

## 常见问题

### @emulators/core 是什么？

HTTP服务器,内存存储器,插件接口,以及模拟服务插件的中间软件\.

### 如何安装 @emulators/core？

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

### @emulators/core 支持 TypeScript 吗？

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

### @emulators/core 支持 ESM 还是 CommonJS？

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

### @emulators/core 可以商用吗？

@emulators/core 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @emulators/core 的下载量有多少？

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

### @emulators/core 还在维护吗？

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

