vbenjs / vite-plugin-mock

A mock plugin for vite.use mockjs.
MIT License
610 stars 96 forks source link

线上环境get请求中query获取不到完整的数组参数,开发环境正常 #93

Closed Lin-Van closed 11 months ago

Lin-Van commented 1 year ago

版本:最新版本 请求发送数组参数:{selectProps:["a", "b", "c"]}
mock拦截:response: ({ query }) => {console.log(query.selectProps)} 结果: 线上环境:"c" 开发环境:"a", "b", "c"

尝试使用response中opt的url进行解析获取完整数组参数,发现在线上环境中url是undefined 备注:axios配置使用qs.stringify(params, { indices: false })

webzihe commented 11 months ago

你好请问一下你是怎么在线上环境使用的 我配置 prodEnabled: true, // 生产环境是否开启 enable: true, // 开启或关闭mock 但是线上环境还是没有mock请求

Lin-Van commented 11 months ago

你好请问一下你是怎么在线上环境使用的 我配置 prodEnabled: true, // 生产环境是否开启 enable: true, // 开启或关闭mock 但是线上环境还是没有mock请求

plugins.ts

// mock支持
    viteMockServe({
      mockPath: "mock",
      localEnabled: command === "serve",
      prodEnabled: command !== "serve" && prodMock,
      injectCode: `
          import { setupProdMockServer } from './mockProdServer';
          setupProdMockServer();
        `,
      logger: false
    }),

mockProdServer.ts

import { createProdMockServer } from "vite-plugin-mock/es/createProdMockServer";

const modules: Record<string, any> = import.meta.glob("../mock/*.ts", {
  eager: true
});
const mockModules = [];

Object.keys(modules).forEach(key => {
  mockModules.push(...modules[key].default);
});

export function setupProdMockServer() {
  createProdMockServer(mockModules);
}