# @equinor/fusion-openapi-mock-server 中文文档

规范地址：https://npmcn.com/package/%40equinor/fusion-openapi-mock-server/

版本：1\.0\.1
npm 元数据更新时间：2026-11-12T09:58:29.100Z
中文译文更新时间：2026-11-14T06:50:05.595Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40equinor/fusion-openapi-mock-server
原文对照：https://npmcn.com/package/%40equinor/fusion-openapi-mock-server/?lang=original
源码仓库：https://github.com/equinor/fusion-framework

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

- 包体积（解压后）：877 kB，239 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：7 个
- 首次发布：2026-08-26T11:05:58.800Z
- 最新版本发布：2026-11-12T09:58:28.765Z
- 近 30 天下载量：2191（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

独立 HTTP 服务器,服务于 OpenAPI 光谱目录中的 @equinor/musion-openapi-mock 假相,可直接通过测试( 如 Playwright) 以及本地 dev 地址

## 安装

```sh
npm install @equinor/fusion-openapi-mock-server
```

也可以使用：`pnpm add @equinor/fusion-openapi-mock-server`、`yarn add @equinor/fusion-openapi-mock-server`、`bun add @equinor/fusion-openapi-mock-server`

## README

# @equinor/musion-openapi-mock-服务器

一个单独的 HTTP 服务器 [`@equinor/fusion-openapi-mock`](https://npmcn.com/package/%40equinor/openapi-mock): 它服务于每一个 它从OpenAPI的目录中从自己的地址中发现服务,所以是一个测试跑取器(例如. Playwright)可以将服务发现指向一个源头,并直接驱动每个测试的覆盖 HTTP——不涉及Vite或dev-server进程.

## 何时使用此软件包

-   您想要一个模拟后端, 您可以独立启动和停止您的应用程序的构建工具( Vite, (a) 捆绑/分阶段的建筑,或普通的Playwright).
-   您希望 Playwright 测试能够覆盖特定服务对一个测试的响应( 例如“ context ” ,然后重置到生成的基准后.
-   你已经有了 `@equinor/fusion-openapi-mock` 光谱并想要通过HTTP服务,而不是 接入了dev-server中间软件.

## 安装

```bash
pnpm add -D @equinor/fusion-openapi-mock-server
```

## 快开始

```ts
import { createMockServer } from '@equinor/fusion-openapi-mock-server';

const server = createMockServer().use('fusion').use('./mocks');
const { url } = await server.start({ port: 4010 });
// url -> 'http://localhost:4010'

await server.close();
```

或从CLI:

```bash
pnpm exec fusion-mock --preset=fusion ./mocks --port 4010
```

来源从左到右分层,所以 `./mocks` 替换捆绑的同键服务 `fusion` 预设。 没有源参数, CLI 读取 `./mocks`;没有 `--port`,操作 系统指定一个自由端口.

## 入境点

| 导入 | 目的 |
| --- | --- |
| `@equinor/fusion-openapi-mock-server` | `createMockServer`, (中文(简体) ), `createMockAuth`, (中文(简体) ), `createMockAnalytics` (在测试中读取,等待并重置所记录的分析),及其服务器/会话类型. |
| `@equinor/fusion-openapi-mock-server/discovery` | 定义可执行文件 `<name>.mock.ts` 模块 `defineService`,或使用低级 `discoverServices`, (中文(简体) ), `createService`,以及 `createRouter` APIs (英语). |
| `@equinor/fusion-openapi-mock-server/presets` | 装有捆绑预装装载器的登记册. |
| `@equinor/fusion-openapi-mock-server/presets/fusion` | `fusionPreset`, (中文(简体) ), `defineRolesV2Mock`融合服务的定义, `defineAnalyticsMock` (模拟监测服务,接收、记录和种子分析), `defineAppFeatureEventsMock` (Apps服务公司) `POST /apps/feature-events/query` ”),以及 `parseOtlpLogsRequest` 编号 : `parseOtlpResourceLog` 编号 : `projectAnalyticsEvent` 用来读解解析器 Fusion的解析管道的方式. |

模拟服务器显示生成的服务响应,源定义的字段/路径覆盖, 可编程的中端软件,运行时操作会覆盖. 从目录发现开始;使用 只有当伪造器功能或中间软件路由不能是时, 才有较低级别的发现入口 以JSON或YAML表示.

## 迁移:路径到regexp v9

通过注册的中间软件路由所捕获的这一主要释放变化参数 `ServiceBuilder.middleware` 或导出 `createRouter`。审查处理器 `RouteContext.params`,特别是一个段内有多个参数的路线.

```ts
router.get('/:file.:ext', (_req, res, { params }) => res.json(params));
// Request: /foo.json.html (relative to the service)
// Before (v8): { file: 'foo.json', ext: 'html' }
// Now (v9):    { file: 'foo', ext: 'json.html' }
```

优先选择独立的有意义的值,更新模拟路由和测试 合并客户端 :

```ts
router.get('/files/:file/extensions/:ext', (_req, res, { params }) => res.json(params));
// Request: /files/foo.json/extensions/html
// params = { file: 'foo.json', ext: 'html' }
```

如果已有的 URL 必须保持不变, 请抓取整个段并明确分割到 在您的处理器中最后一个点 而不是依赖模糊的匹配者抓取 :

```ts
router.get('/:filename', (_req, res, { params }) => {
  const filename = String(params.filename);
  const separator = filename.lastIndexOf('.');
  if (separator <= 0 || separator === filename.length - 1) {
    res.statusCode = 400;
    res.json({ error: 'Expected a filename with an extension' });
    return;
  }
  res.json({ file: filename.slice(0, separator), ext: filename.slice(separator + 1) });
});
// Request: /foo.json.html -> { file: 'foo.json', ext: 'html' }
```

直接 `createRouter` 仍为使用 `trailing: false`路径 `/files/` 匹配 `/files/`没有 `/files` 或者说 `/files//`; 无法启用可选的后导划线 。 独立服务器 已经在服务中间软件匹配前将空路段正常化, 因此注册 `/files` 此处:服务请求 `/files`, (中文(简体) ), `/files/` 财务报告和审定财务报表 `/files//` 到达同一路线。 这种正常化 升级时不变。 简单路线,例如 `/users/:id` 不受捕获变化的影响.

添加既支持 HTTP 响应又支持 `params` 无效 文件名和后继斜拉变体。 依赖性仅为无害环境管理,需要22号节点或更新; 继续使用本包的无害环境管理切入点.

## 文档

-   [开始](https://npmcn.com/package/%40equinor/fusion-openapi-mock-server/docs/getting-started.md) - 目录公约,捆绑 `fusion` 通过 CLI 或程序预设、覆盖机制、分层和运行服务器
-   [用 Playwright 测试](https://npmcn.com/package/%40equinor/fusion-openapi-mock-server/docs/testing-with-playwright.md) ——按会次选择用户, 切换、 瞄准镜符号的发布、 操作覆盖、 重置和全路由参考
-   [本地测试帮助文章](https://npmcn.com/package/%40equinor/fusion-openapi-mock-server/docs/testing-help-articles.md) ——以本地的帮助docs为嘲讽 `help` 服务 `defineHelpArticlesMock`,所以dev门户网站打开文章的应用程序 请求 `useHelpCenter()`
-   [测试本地分析](https://npmcn.com/package/%40equinor/fusion-openapi-mock-server/docs/testing-analytics.md) ——接受,记录,并给分析师以种子 应用程序音轨 `useTrackFeature()`在 Playwright 中检查 `createMockAnalytics`,以及 以 `defineAnalyticsMock` 财务报告和审定财务报表 `defineAppFeatureEventsMock`

## 常见问题

### @equinor/fusion-openapi-mock-server 是什么？

独立 HTTP 服务器,服务于 OpenAPI 光谱目录中的 @equinor/musion-openapi-mock 假相,可直接通过测试\( 如 Playwright\) 以及本地 dev 地址

### 如何安装 @equinor/fusion-openapi-mock-server？

在项目目录运行 npm install @equinor/fusion-openapi-mock-server，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 fusion-mock，可以用 npx fusion-mock 直接运行。

### @equinor/fusion-openapi-mock-server 支持 TypeScript 吗？

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

### @equinor/fusion-openapi-mock-server 支持 ESM 还是 CommonJS？

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

### @equinor/fusion-openapi-mock-server 可以商用吗？

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

### @equinor/fusion-openapi-mock-server 的下载量有多少？

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

### @equinor/fusion-openapi-mock-server 还在维护吗？

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

