Open SoldierAb opened 1 year ago
一样的,生产环境不行,没人管的,
我也遇到了,但是发现github上最新的版本是2.9.1,安装2.9.1就行了
API有变化。我看别人是这样配置的: vite中的配置更改为:
viteMockServe({
mockPath: "./src/api/mock",
enable: true,
}),
生产环境在入口文件(main.ts)中添加:
// 生产环境使用mock开启:production mock server
if (process.env.NODE_ENV === "production") {
import("@/api/mockProdServer").then(({ setupProdMockServer }) => {
setupProdMockServer();
});
}
创建mockProdServer.ts,生产环境引入全部mock文件:
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-expect-error
import { createProdMockServer } from "vite-plugin-mock/client";
const modules: {
[key: string]: { default: object[] };
} = import.meta.glob("./mock/*.ts", {
eager: true,
});
const mockModules: object[] = [];
Object.keys(modules).forEach(key => {
if (key.includes("/_")) {
return;
}
mockModules.push(...modules[key].default);
});
/**
* Used in a production environment. Need to manually import all modules
*/
export function setupProdMockServer() {
createProdMockServer(mockModules);
}
打包后会生成这种文件:
亲测有效,只是生产环境看不到网络请求了
API有变化。我看别人是这样配置的: vite中的配置更改为:
viteMockServe({ mockPath: "./src/api/mock", enable: true, }),
生产环境在入口文件(main.ts)中添加:
// 生产环境使用mock开启:production mock server if (process.env.NODE_ENV === "production") { import("@/api/mockProdServer").then(({ setupProdMockServer }) => { setupProdMockServer(); }); }
创建mockProdServer.ts,生产环境引入全部mock文件:
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error import { createProdMockServer } from "vite-plugin-mock/client"; const modules: { [key: string]: { default: object[] }; } = import.meta.glob("./mock/*.ts", { eager: true, }); const mockModules: object[] = []; Object.keys(modules).forEach(key => { if (key.includes("/_")) { return; } mockModules.push(...modules[key].default); }); /** * Used in a production environment. Need to manually import all modules */ export function setupProdMockServer() { createProdMockServer(mockModules); }
打包后会生成这种文件:
亲测有效,只是生产环境看不到网络请求了
我按照这种方式做了,发现还是不行,请求过去后其实都走路由了
API有变化。我看别人是这样配置的: vite中的配置更改为:
viteMockServe({ mockPath: "./src/api/mock", enable: true, }),
生产环境在入口文件(main.ts)中添加:
// 生产环境使用mock开启:production mock server if (process.env.NODE_ENV === "production") { import("@/api/mockProdServer").then(({ setupProdMockServer }) => { setupProdMockServer(); }); }
创建mockProdServer.ts,生产环境引入全部mock文件:
// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error import { createProdMockServer } from "vite-plugin-mock/client"; const modules: { [key: string]: { default: object[] }; } = import.meta.glob("./mock/*.ts", { eager: true, }); const mockModules: object[] = []; Object.keys(modules).forEach(key => { if (key.includes("/_")) { return; } mockModules.push(...modules[key].default); }); /** * Used in a production environment. Need to manually import all modules */ export function setupProdMockServer() { createProdMockServer(mockModules); }
打包后会生成这种文件: 亲测有效,只是生产环境看不到网络请求了
我按照这种方式做了,发现还是不行,请求过去后其实都走路由了
可能是每个项目的依赖不一样,我这边这个项目是可以用的
文档与API不兼容
package.json 如下
user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 20480;
events { use epoll; worker_connections 20480; multi_accept on; }
http { include /etc/nginx/mime.types; default_type application/octet-stream;
}