mock在vite项目中如何配置

  • npm搜索:vite-plugin-mock

  • 安装:npm install vite-plugin-mock mockjs -D

  • 配置 vite.config.ts

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

plugins: [
    vue(),
    viteMockServe({
    enable: command === 'serve', // 是否使用mock接口;等于serve是开发阶段使用mock接口
    }),
],
  • 根目录创建 mock/user.ts,和node_moudules同级;
function createUserList() {
    return [
        {
            userId: 1,
            avatar: '',
            username: 'admin',
            password: '123456',
            desc: '平台管理员',
            roles: ['平台管理员'],
            buttons: ['curser.detail'],
            routes: ['home'],
            token: 'Admin Token',
        },
        {
            userId: 2,
            avatar: '',
            username: 'system',
            password: '123456',
            desc: '系统管理员',
            roles: ['系统管理员'],
            buttons: ['curser.detail', 'curser.user'],
            routes: ['home'],
            token: 'System Token',
        },
    ];
}

export default [
    {
        url: '/api/user/login',
        method: 'post',
        timeout: 2000,
        response: ({ body }) => {
            const { username, password } = body;
            const hasUser = createUserList().find(
                (item) =>
                    item.username === username && item.password === password,
            );

            if (!hasUser) {
                return { code: 201, data: { message: '账号或密码错误' } };
            }

            const { token } = hasUser;
            return { code: 200, data: { token, message: '登录成功' } };
        },
    },
    {
        url: '/api/user/info',
        method: 'get',
        response: (request) => {
            const token = request.headers.token;
            const hasUser = createUserList().find(
                (item) => item.token === token,
            );
            if (!hasUser) {
                return { code: 201, data: { message: '获取用户信息失败' } };
            }
            return {
                code: 200,
                data: { hasUser, message: '获取用户信息成功' },
            };
        },
    },
];
  • 在项目中测试是否连接mock接口
import axios from 'axios';
axios({
    url: '/api/user/login',
    method: 'post',
    data: {
        username: 'admin',
        password: '123456',
    },
});
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容