Giter Site home page Giter Site logo

vite-plugin-simple-mock's Introduction

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

vite-plugin-simple-mock's People

Stargazers

test avatar

Watchers

test avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.