vite使用mock插件的配置(vite-plugin-mock)

    mock经常在项目中使用,配置也是常有的事,故在此记录下来

一、安装依赖

# 使用 npm 安装
npm install mockjs vite-plugin-mock
# 使用 yarn 安装
yarn add mockjs vite-plugin-mock

二、配置

1、在项目的根目录  vite.config,ts

import type { ConfigEnv, UserConfig } from 'vite';

import mockPlugin './build/vite/plugin';


export default ({ mode }: ConfigEnv): UserConfig => {

  const VITE_PORT = '8080'
  const VITE_PROXY_URL = 'https://222.222.222.222'
  return {
    plugins: mockPlugin(true/false), //在这个文件里面,可以配置mock的一些属性  true/false代表的是mock开关 
    base: './',
    resolve: {
       ....
    },
    css: {
       .....
    },
    server: {
      port: VITE_PORT,   //端口
      open: '/',
      host: '0.0.0.0',   //本地地址:localhost或者其他
      https: true,
      proxy: {           //代理
        '/iotp': {
          target: VITE_PROXY_URL,    //请求的url,例后端给的地址
          changeOrigin: true,        //当进行代理时,Host 头部的源默认会保持原状;你可以设置 changeOrigin 为 true 来覆盖这种行为;变成target对应得地址
          secure: false,             // 关闭SSL证书校验
          rewrite: path => {         //重定地址,比如:把以/aaa开头的地址换成''
            return path.replace(/^\/aaaa/, '');
          },
        },
      },
    },
    build: {
      rollupOptions: {
        input: {
          main: resolve(process.cwd(), 'index.html'),
        },
      },
    },
  };
};

2、在./build/vite/plugin文件里面(此处文件是自行创建的)

import type { Plugin } from 'vite';
import { viteMockServe } from 'vite-plugin-mock';

export default function mockPlugin(VITE_USE_MOCK: boolean) {
  return {
    ...viteMockServe({
      mockPath: 'mock',          //mock文件路径,在根路径下创建一个mock文件
      localEnabled: VITE_USE_MOCK, //mock开关
      prodEnabled: false,         //生产环境下为false,这样就不会被打包到生产包中
      ignore: /^\_/,       //忽略开始_路径
    }),
  } as Plugin;
}

3、在根目录创建一个mock文件,下面再细分各种文件,例如创建一个api / login.ts

export default [
  {
    url: "/api/login",
    method: "post",
    response: () => {
      return {
        code: 200,
        message: "ok",
        data: {success:true}
      };
    }
  }
];

4、在外部调用的话,就是正常的调用,直接

axios.post('/api/login',xxx,xxx)  

注意: axios要自己内部封装哈

5、额外补充:上面的案例是mock接口成功的,如果想要mock接口失败,那就在第3步

export default [

{}        //空对象即可

]

此时接口会返回401状态码,就能对接口失败做后续处理 

6、至此,一个mock完成

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vite-plugin-mock是一个用于ViteMock插件,可以在开发过程中使用虚拟数据进行调试和测试。它可以模拟接口返回数据,支持动态生成数据。下面是vite-plugin-mock配置示例: ```javascript // vite.config.js import { defineConfig } from 'vite' import mockPlugin from 'vite-plugin-mock' export default defineConfig({ plugins: [ mockPlugin({ // mock配置 mockPath: 'mock', supportTs: true, injectCode: ` import Mock from 'mockjs'; Mock.mock('/api/user', { 'name': '@cname', 'age|1-100': 100, 'gender|1': ['男', '女', '保密'] }); ` }) ] }) ``` 上面的配置中,mockPath指定了mock文件夹的路径,supportTs表示是否支持TypeScript,injectCode为注入代码,在这里我们使用Mock.js模拟了一个接口`/api/user`返回的数据。 在mock文件夹中,我们可以创建一个`.ts`或`.js`文件,用于存放各种接口的模拟数据。例如,我们可以在mock文件夹下创建一个`user.ts`文件,用于模拟`/api/user`接口的返回数据: ```javascript // mock/user.ts import { MockMethod } from 'vite-plugin-mock'; import Mock from 'mockjs'; export default [ { url: '/api/user', method: 'get', response: () => { return Mock.mock({ 'name': '@cname', 'age|1-100': 100, 'gender|1': ['男', '女', '保密'] }) } } ] as MockMethod[] ``` 这里我们使用`Mock.mock`方法生成了随机数据,并返回给接口调用者。 最后,在应用中发起请求时,只需要使用插件模拟的接口路径即可,例如: ```javascript // main.js fetch('/api/user').then(res => res.json()).then(data => { console.log(data) }) ``` 这样,在开发过程中就可以使用虚拟数据进行调试和测试了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值