安装依赖

  1. npm install mockjs -D
  2. npm install vite-plugin-mock -D

配置mock.ts

  1. import { viteMockServe } from 'vite-plugin-mock';
  2. export default function createMock(env, isBuild) {
  3. return viteMockServe({
  4. mockPath: 'mock', // mock文件路径制定为 mock
  5. localEnabled: !isBuild, // 设置是否启用本地数据文件,不要在生产环境中打开它.设置为 false 将禁用 mock 功能
  6. prodEnabled: isBuild, // 设置打包是否启用 mock 功能
  7. injectFile: 'src/main.ts', // injectCode 代码注入的文件,默认为项目根目录下 src/main.{ts,js}
  8. injectCode: `
  9. import { setupProdMockServer } from './mockProdServer';
  10. setupProdMockServer();
  11. `, // 注入的代码
  12. supportTs: true, // 打开后可以读取 ts 模块,但是将无法监视 js 文件
  13. watchFiles: true // 设置是否监视 mockPath 对应的文件夹内文件中的更改
  14. })
  15. }

添加mock文件

在根目录创建mock文件夹(文件夹路径与配置中mockPath对应),然后添加数据文件,例如:

  1. export default [
  2. {
  3. url: '/mock/login',
  4. method: 'post',
  5. response: option => {
  6. return {
  7. code: 200,
  8. message: 'success',
  9. data: {
  10. token: 'abcde12412423'
  11. }
  12. }
  13. }
  14. },
  15. {
  16. url: '/mock/user/permissions',
  17. method: 'get',
  18. response: option => {
  19. return {
  20. code: 200,
  21. message: 'success',
  22. data: {
  23. permissions: [
  24. 'system:user:add',
  25. 'system:user:edit',
  26. 'system:user:delete'
  27. ]
  28. }
  29. }
  30. }
  31. }
  32. ]

编写mockProdServer.ts文件

  1. import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer';
  2. const mocks: any[] = [];
  3. // 导入mock文件夹下所有的数据文件
  4. const mockContext = import.meta.globEager('../mock/*.ts');
  5. Object.keys(mockContext).forEach(i => {
  6. mocks.push(...mockContext[i].default);
  7. })
  8. export function setupMockServer() {
  9. createProdMockServer(mocks);
  10. }