参考vben使用vite-plugin-mock进行MOCK

688 阅读1分钟

vben链接:github.com/vbenjs/vue-…

  1. 环境变量中定义VITE_USE_MOCK: boolean

    .env.development
    
    # Whether to open mock
    VITE_USE_MOCK = true
    
  2. tsconfig.json中include"mock/**/*.ts"

  3. .vscode/settings.json中"cSpell.words"定义"mockjs"

  4. package.json中引入vite-plugin-mock

  5. vite.config.ts中定义viteMockServe(可以自行选择是否封装vite使用的插件)

  6. 新建与src同级的mock文件夹,里面用来方式定义的mock接口与返回

    import { MockMethod } from 'vite-plugin-mock';
    import { resultSuccess, resultError } from '../_util';
    import { ResultEnum } from '../../src/enums/httpEnum';
    
    const userInfo = {
      name: 'Vben',
      userid: '00000001',
      email: 'test@gmail.com',
      signature: '海纳百川,有容乃大',
      introduction: '微笑着,努力着,欣赏着',
      title: '交互专家',
      group: '某某某事业群-某某平台部-某某技术部-UED',
      tags: [
        {
          key: '0',
          label: '很有想法的',
        },
        {
          key: '1',
          label: '专注设计',
        },
        {
          key: '2',
          label: '辣~',
        },
        {
          key: '3',
          label: '大长腿',
        },
        {
          key: '4',
          label: '川妹子',
        },
        {
          key: '5',
          label: '海纳百川',
        },
      ],
      notifyCount: 12,
      unreadCount: 11,
      country: 'China',
      address: 'Xiamen City 77',
      phone: '0592-268888888',
    };
    
    export default [
      {
        url: '/basic-api/account/getAccountInfo',
        timeout: 1000,
        method: 'get',
        response: () => {
          return resultSuccess(userInfo);
        },
      },
      {
        url: '/basic-api/user/sessionTimeout',
        method: 'post',
        statusCode: 401,
        response: () => {
          return resultError();
        },
      },
      {
        url: '/basic-api/user/tokenExpired',
        method: 'post',
        statusCode: 200,
        response: () => {
          return resultError('Token Expired!', { code: ResultEnum.TIMEOUT as number });
        },
      },
    ] as MockMethod[];