Files
vue3-template-h5/vite.util.ts
T
2025-05-28 11:43:29 +08:00

70 lines
1.5 KiB
TypeScript

type enforceType = "post" | "pre";
const enforceValue: enforceType = "post";
const setCrossoriginUseCredentials = () => {
return {
name: "set-crossorigin",
enforce: enforceValue,
transformIndexHtml(html: string) {
return html.replace(/crossorigin/g, "crossorigin=\"use-credentials\"");
}
};
};
const injectHtmlVars = (env: Record<string, string>) => {
return {
name: "inject-html-vars",
enforce: enforceValue,
transformIndexHtml(html: string) {
let str = html;
for (const key in env) {
if (Object.prototype.hasOwnProperty.call(env, key)) {
const element = env[key];
const reg = new RegExp(`%${key}%`, "g");
str = str.replace(reg, element);
}
}
return str;
}
};
};
const proxyConfig = (env: Record<string, string>) => {
const { NODE_PROXY_TARGET } = env;
const proxyTarget = NODE_PROXY_TARGET || "";
const proxyTable = {
"/zuul": {
target: proxyTarget,
changeOrigin: true
},
"/media/": {
target: proxyTarget,
changeOrigin: true
},
"/zwwxgzt": {
target: proxyTarget,
changeOrigin: true
},
"/midjs": {
target: proxyTarget,
changeOrigin: true
},
"/irc": {
target: proxyTarget,
changeOrigin: true
}
};
return proxyTable;
};
export default {
setCrossoriginUseCredentials,
injectHtmlVars,
proxyConfig
};
export {
setCrossoriginUseCredentials,
injectHtmlVars,
proxyConfig
};