vite-plugin-simple-mock
TypeScript icon, indicating that this package has built-in type declarations

0.1.3 • Public • Published

vite-plugin-simple-mock

npm 地址

基于 TypeScript 开发的 Vite Server mock 服务。 支持 TypeScript 和 JavaScript 环境使用 Mock API。Mock Api 提供参数解析,包含 formData 数据解析,并支持 express.js middlewares.

安装

# 使用npm
npm i -D vite-plugin-simple-mock
# 使用yarn
yarn add -D vite-plugin-simple-mock

运行示例

npm install
cd ./example
npm install
npm run dev

用法

  • 新建 mock 文件夹
// 目录 mock/index.ts
import { Mock } from "vite-plugin-simple-mock";

const mock = new Mock();

mock.get("/api/test", (req, res) => {
  return {
    code: 0,
    msg: "请求成功"
    data: {}
  }
})

return mock
  • 在 vite.config.ts 中使用
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import ViteSimpleMock from "vite-plugin-simple-mock";
// 导出的mock对象
import mock from "./mock/index";

export default defineConfig({
  plugins: [vue(), ViteSimpleMock(mock)],
});

mock 对象说明

  • constructor
class Mock {
  constructor(options?: Pick<MockOptions, "disabled" | "timeout">) {}
}
参数 类型 必填项 说明
disabled boolean 是否禁用 mock 对象
timeout number 代理的超时时长
  • request 代理请求方法
  • get,post,put,delete,patch,options,head,trace 特定请求方式的代理
request(options: MockRequest & MockOptions) {}
get(url: string, callback: MockCallback, options?: MockOptions) {}
MockRequest 说明
参数 类型 必填项 说明
url string 代理的路径
method string 代理请求方式
callback MockCallback 代理请求的回调函数
MockCallback 说明
// req和res为http对象
// 函数内return值,即为返回值,
// 注:返回值必须为javascript有效值
export interface MockCallback {
  (req: Connect.IncomingMessage & RequsetParams, res: ServerResponse): any;
}
MockOptions 说明
参数 类型 必填项 说明
disabled boolean 是否禁用 mock 对象
timeout number 代理的超时时长
statusCode number 响应状态
headers Object http 响应头

插件说明

export default function VitePluginSimpleMock(
  mock: Mock,
  options?: PluginOptions
): PluginOption {}
参数 类型 必填项 说明
mock Mock mock 对象
options PluginOptions 插件配置项
PluginOptions 说明
参数 类型 必填项 说明
proxy string / RegExp / Array<string / RegExp> 代理路径,默认: /^/api//
ignore string / RegExp / Array<string / RegExp> 忽略代理路径
disabled boolean 禁用插件
middlewares Connect.NextHandleFunction[] express.js 中间件,主要用于参数处理
disabledMiddleware boolean 禁用插件集成的中间件,避免一些重复处理及不明错误

特殊用法

// 目录 mock/index.ts
import { Mock } from "vite-plugin-simple-mock";

const mock = new Mock();

// 低优先级
mock.get("/api/test", (req, res) => {
  // 设置响应状态值
  res.statusCode = 210
  // 设置请求头
  res.setHeader("custom-type", "0_0");
  return {
    code: 0,
    msg: "请求成功"
    data: {
      query: req.query, // url链接参数
      body: req.body, // body参数
    }
  }
})
// 高优先级
mock.get("/api/top", (req, res) => {
  return {
    code: 0,
    msg: "请求成功"
    data: {
      query: req.query, // url链接参数
      body: req.body, // body参数
    }
  }
}, {
  // 配置项优先级最高
  statusCode: 210,
  headers: {
    "custom-type": "-0_0-"
  }
})

return mock

注意事项

  1. 插件只做基本的请求代理。
  2. 插件注册多个相同代理,只会成功第一个

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i vite-plugin-simple-mock

Weekly Downloads

0

Version

0.1.3

License

MIT

Unpacked Size

19.4 kB

Total Files

7

Last publish

Collaborators

  • lukunkun