vite-plugin-mock完全指南:基于Mock.js的Vite数据模拟神器 vite-plugin-mock完全指南基于Mock.js的Vite数据模拟神器【免费下载链接】vite-plugin-mockA mock plugin for vite.use mockjs.项目地址: https://gitcode.com/gh_mirrors/vi/vite-plugin-mockvite-plugin-mock是一款基于Mock.js开发的Vite数据模拟插件同时支持本地开发环境和生产环境。在本地开发时使用Connect服务中间件在生产环境中则使用Mock.js为前端开发者提供了便捷高效的数据模拟解决方案。为什么选择vite-plugin-mock在前端开发过程中经常会遇到后端接口尚未开发完成的情况。这时数据模拟就显得尤为重要。vite-plugin-mock作为一款专为Vite打造的插件具有以下优势同时支持开发和生产环境本地开发使用Connect中间件可在Chrome控制台查看网络请求记录生产环境使用Mock.js满足测试需求。简单易用只需简单配置即可快速搭建模拟服务。实时更新支持监听mock文件变化实时更新模拟数据。灵活强大基于Mock.js可生成各种类型的模拟数据支持自定义响应逻辑。快速开始安装与基本配置环境要求node版本12.0.0vite版本2.0.0安装依赖首先需要安装mockjs和vite-plugin-mock# 安装mockjs yarn add mockjs # 或者 npm i mockjs -S # 或者 pnpm add mockjs # 安装vite-plugin-mock yarn add vite-plugin-mock -D # 或者 npm i vite-plugin-mock -D # 或者 pnpm add vite-plugin-mock -D基本配置在vite.config.ts中配置插件import { UserConfigExport, ConfigEnv } from vite import { viteMockServe } from vite-plugin-mock import vue from vitejs/plugin-vue export default ({ command }: ConfigEnv): UserConfigExport { return { plugins: [ vue(), viteMockServe({ // 默认mock文件存放目录 mockPath: mock, // 是否启用mock功能 enable: true, }), ], } }深入了解核心配置选项vite-plugin-mock提供了丰富的配置选项让你可以根据项目需求进行灵活调整mockPath类型string默认值mock说明设置mock .ts文件存放的文件夹路径。如果watchFiles: true将监听该文件夹下的文件变化并实时同步到请求结果。ignore类型RegExp | ((fileName: string) boolean)默认值undefined说明自动读取模拟.ts文件时忽略指定格式的文件。watchFiles类型boolean默认值true说明设置是否监听mock .ts文件的变化。enable类型boolean默认值true说明是否启用mock功能。configPath类型string默认值vite.mock.config.ts说明设置mock读取的数据入口。当该文件存在且位于项目根目录时将优先读取并使用该文件。配置文件返回一个数组。logger类型boolean默认值true说明是否在控制台显示请求日志。实战指南创建Mock文件Mock文件基本结构在mockPath指定的文件夹下创建.ts文件例如test.tsimport { MockMethod } from vite-plugin-mock export default [ { url: /api/get, method: get, response: ({ query }) { return { code: 0, data: { name: vben, }, } }, }, { url: /api/post, method: post, timeout: 2000, response: { code: 0, data: { name: vben, }, }, }, ] as MockMethod[]MockMethod类型详解MockMethod是mock接口的配置类型包含以下属性{ // 请求URL url: string; // 请求方法 method?: MethodType; // 请求延迟时间毫秒 timeout?: number; // 状态码默认200 statusCode?: number; // 响应数据JSON response?: ((opt: { [key: string]: string; body: Recordstring,any; query: Recordstring,any, headers: Recordstring, any; }) any) | any; // 响应非JSON rawResponse?: (req: IncomingMessage, res: ServerResponse) void; }示例创建用户相关接口下面是一个创建用户接口的示例来自packages/playground/js-example/mock/user.jsexport default [ { url: /api/createUser, method: post, response: ({ body }) { console.log(body, body) return { code: 0, message: ok, data: null, } }, }, ]高级用法使用rawResponse如果需要返回非JSON格式的响应可以使用rawResponse{ url: /api/text, method: post, rawResponse: async (req, res) { let reqbody await new Promise((resolve) { req.on(data, (chunk) { reqbody chunk }) req.on(end, () resolve(undefined)) }) res.setHeader(Content-Type, text/plain) res.statusCode 200 res.end(hello, ${reqbody}) }, }生产环境配置在生产环境中使用mock需要创建mockProdServer.ts文件// mockProdServer.ts import { createProdMockServer } from vite-plugin-mock/client // 逐一导入你的mock .ts文件 // 如果你使用vite.mock.config.ts只需直接导入该文件 import testModule from ../mock/test export function setupProdMockServer() { createProdMockServer([...testModule]) }然后在入口文件中引入// src/main.ts if (process.env.NODE_ENV production) { import(./mockProdServer).then(({ setupProdMockServer }) { setupProdMockServer() }) }注意事项mock .ts文件中不能使用node模块否则生产环境会失败。在生产环境中使用mock仅适用于某些测试环境不要在正式环境中开启以免造成不必要的错误。同时在生产环境中可能会影响正常的Ajax请求如文件上传失败等。示例项目vben Admin是一个使用vite-plugin-mock的示例项目你可以参考它的实现方式。总结vite-plugin-mock是一款功能强大、使用简单的Vite数据模拟插件它基于Mock.js为前端开发者提供了便捷的接口模拟方案。无论是在开发环境还是测试环境都能帮助你快速搭建模拟服务提高开发效率。希望本指南能帮助你更好地了解和使用vite-plugin-mock。如果你有任何问题或建议欢迎在项目的GitHub仓库提交issue。【免费下载链接】vite-plugin-mockA mock plugin for vite.use mockjs.项目地址: https://gitcode.com/gh_mirrors/vi/vite-plugin-mock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

本土力量点亮乡村夜空!江山老炮儿乐队正式常驻清湖三村

本土力量点亮乡村夜空!江山老炮儿乐队正式常驻清湖三村

近日,衢州江山本土实力派文艺团体老炮乐儿队正式落地入驻江山市清湖街道清湖三村,成为村庄常态化文化文艺演出常驻团队。今后,乐队将长期扎根清湖三村,持续开展常态化惠民文艺演出,用经典老歌、流行金曲、民俗音乐丰富…

2026/8/8 1:47:56
IEEE论文投稿全流程指南:从期刊选择到审稿回复的实战经验

IEEE论文投稿全流程指南:从期刊选择到审稿回复的实战经验

1. 从“菜鸟”到“老手”:我的第一篇IEEE论文投稿心路第一次点开IEEE投稿系统的时候,我整个人是懵的。看着满屏的英文术语和复杂的流程选项,感觉比写论文本身还要难。相信很多刚接触学术圈的研究生和青年学者都有过类似的经历。一篇论文&…

2026/8/8 1:47:56
Dijkstra算法详解:从原理到代码实现与工程应用

Dijkstra算法详解:从原理到代码实现与工程应用

1. 项目概述:从地图导航到网络路由,无处不在的最短路径如果你用过手机地图App,输入起点和终点,它几乎瞬间就能给你规划出一条“最优”路线。这个“最优”背后,十有八九就藏着我们今天要聊的狄克斯特拉算法。这算法名字…

2026/8/8 1:47:56
FIDO2无密码认证与企业身份管理的深度整合实践

FIDO2无密码认证与企业身份管理的深度整合实践

1. 项目背景与核心价值FIDO2作为新一代无密码认证标准正在重塑企业身份管理体系。这个实验项目将FIDO2协议与大数据环境下的用户管理系统深度整合,解决了传统账号体系在分布式环境中的三大痛点:密码撞库风险、集中式认证瓶颈以及审计日志失真问题。去年某…

2026/8/8 1:47:56
5分钟快速上手Umi-OCR:免费离线的文字识别神器

5分钟快速上手Umi-OCR:免费离线的文字识别神器

5分钟快速上手Umi-OCR:免费离线的文字识别神器 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …

2026/8/8 1:47:56
VC++ CAD软件源码解析:从架构设计到图形渲染实战

VC++ CAD软件源码解析:从架构设计到图形渲染实战

1. 项目概述:从源码视角看工业级CAD软件的构建如果你是一名使用Visual C(VC)进行桌面应用开发的工程师,并且对计算机辅助设计(CAD)这类大型、复杂的图形软件的内部构造充满好奇,那么“深入解析V…

2026/8/8 1:42:56