@equinor/fusion-openapi-mock-server

中文文档
1.0.1发布于 2026/11/12ISCTypeScriptES Module近 30 天下载 2191

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

中文使用文档
文档目录6 节
  1. 何时使用此软件包
  2. 安装
  3. 快开始
  4. 入境点
  5. 迁移:路径到regexp v9
  6. 文档

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

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

何时使用此软件包

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

安装

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

快开始

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:

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

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

入境点

导入目的
@equinor/fusion-openapi-mock-servercreateMockServer, (中文(简体) ), 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/fusionfusionPreset, (中文(简体) ), defineRolesV2Mock融合服务的定义, defineAnalyticsMock (模拟监测服务,接收、记录和种子分析), defineAppFeatureEventsMock (Apps服务公司) POST /apps/feature-events/query ”),以及 parseOtlpLogsRequest 编号 : parseOtlpResourceLog 编号 : projectAnalyticsEvent 用来读解解析器 Fusion的解析管道的方式.

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

迁移:路径到regexp v9

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

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' }

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

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 必须保持不变, 请抓取整个段并明确分割到 在您的处理器中最后一个点 而不是依赖模糊的匹配者抓取 :

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号节点或更新; 继续使用本包的无害环境管理切入点.

文档

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

版本与发布记录

@equinor/fusion-openapi-mock-server 共发布 16 个版本,首次发布于 2026/08/26;过去 12 个月发布了 16 个版本。

版本发布日期距今
1.0.1latest2026/11/121 天前
1.0.1-next.0next2026/11/112 天前
1.0.02026/11/112 天前
0.5.4-next.02026/10/2816 天前
0.5.32026/10/1727 天前
0.5.3-trusted-publishing-20261015-9dfe7602cd2a49a8a9df00d62c26e7304a82a85atrusted-publishing-202610152026/10/1629 天前

关于 @equinor/fusion-openapi-mock-server 的常见问题

@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 和提交记录判断。