0.1.3 • Published 1 year ago

vite-plugin-simple-mock v0.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

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">) {}
}
参数类型必填项说明
disabledboolean是否禁用 mock 对象
timeoutnumber代理的超时时长
  • request 代理请求方法
  • get,post,put,delete,patch,options,head,trace 特定请求方式的代理
request(options: MockRequest & MockOptions) {}
get(url: string, callback: MockCallback, options?: MockOptions) {}
MockRequest 说明
参数类型必填项说明
urlstring代理的路径
methodstring代理请求方式
callbackMockCallback代理请求的回调函数
MockCallback 说明
// req和res为http对象
// 函数内return值,即为返回值,
// 注:返回值必须为javascript有效值
export interface MockCallback {
  (req: Connect.IncomingMessage & RequsetParams, res: ServerResponse): any;
}
MockOptions 说明
参数类型必填项说明
disabledboolean是否禁用 mock 对象
timeoutnumber代理的超时时长
statusCodenumber响应状态
headersObjecthttp 响应头

插件说明

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

特殊用法

// 目录 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

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago

0.1.0

1 year ago