Repolode
mswjs

mswjs/msw

一个 JavaScript API 模拟库,在浏览器和 Node.js 中拦截网络请求,让应用代码保持不变并返回模拟响应。

Star
18,307
Fork
642
未关闭 Issue
16
最近提交
8天前

这是什么?

Mock Service Worker(MSW)在网络层模拟 API 请求。在浏览器中,它借助 Service Worker API 用你定义的模拟数据响应请求;在 Node.js 中,则通过底层拦截机制实现。由于应用自身的代码(包括 fetch、axios 及各类数据请求库)保持不变,应用的行为与线上环境一致。

请求处理器采用类似 Express 的路由语法,支持路径参数、通配符和正则表达式匹配,并可设置状态码、响应头、Cookie 和延迟,也能通过自定义解析函数动态生成响应。同一套处理器可以复用于单元测试、集成测试、端到端测试和本地开发调试,模拟的响应还能在浏览器开发者工具的 Network 面板中直接查看。

项目为浏览器提供 setupWorker,为 Node.js 提供 setupServer,并附有文档网站和示例仓库。

核心功能

  • 01在网络层拦截请求,应用代码无需修改。
  • 02支持在浏览器中通过 Service Worker 运行,也可在 Node.js 中用于测试和服务端。
  • 03采用类似 Express 的路由匹配,支持参数、通配符和正则表达式。
  • 04可自定义状态码、响应头、Cookie、延迟,或用解析函数生成响应。
  • 05模拟响应可在浏览器开发者工具的 Network 面板中查看。

适用场景

  • 在后端 API 未就绪时开发前端功能。
  • 编写单元、集成和端到端测试,模拟 HTTP 和 GraphQL 请求。
  • 模拟慢速或失败的接口,测试加载和错误状态。
  • 在本地 Express 服务中对接桩化的第三方 API。

快速上手

  1. 1

    将包安装为开发依赖

    npm i msw --save-dev
  2. 2

    阅读官方快速入门指南以设置请求处理器

使用前须知

  • 浏览器端模拟需要生成并随应用一起部署 Service Worker 文件。

收录于专题

标签

常见问题

msw 是什么?
一个 JavaScript API 模拟库,在浏览器和 Node.js 中拦截网络请求,让应用代码保持不变并返回模拟响应。 Mock Service Worker(MSW)在网络层模拟 API 请求。在浏览器中,它借助 Service Worker API 用你定义的模拟数据响应请求;在 Node.js 中,则通过底层拦截机制实现。由于应用自身的代码(包括 fetch、axios 及各类数据请求库)保持不变,应用的行为与线上环境一致。
msw 可以免费使用吗?用的什么许可证?
msw 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
msw 还在维护吗?
活跃维护中。msw 最近一次提交是在 2026年10月17日。
msw 适合用来做什么?
在后端 API 未就绪时开发前端功能。 编写单元、集成和端到端测试,模拟 HTTP 和 GraphQL 请求。 模拟慢速或失败的接口,测试加载和错误状态。 在本地 Express 服务中对接桩化的第三方 API。
msw 怎么安装和运行?
将包安装为开发依赖: npm i msw --save-dev 阅读官方快速入门指南以设置请求处理器
在哪里获取 msw?
源代码和安装说明在 GitHub 上:https://github.com/mswjs/msw

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目