178 lines
21 KiB
JavaScript
178 lines
21 KiB
JavaScript
![]() |
// vite.config.ts
|
||
|
import vue from "file:///E:/softstoneFile/ry-das/ui/dasadmin/node_modules/@vitejs/plugin-vue/dist/index.mjs";
|
||
|
import { resolve } from "path";
|
||
|
import { loadEnv } from "file:///E:/softstoneFile/ry-das/ui/dasadmin/node_modules/vite/dist/node/index.js";
|
||
|
|
||
|
// src/utils/vite.ts
|
||
|
var customHotUpdate = () => {
|
||
|
const closeHmr = /* @__PURE__ */ new Map();
|
||
|
return {
|
||
|
name: "vite-plugin-custom-hot-update",
|
||
|
configureServer(server) {
|
||
|
server.ws.on("custom:close-hot", (data) => {
|
||
|
closeHmr.set(data.type, true);
|
||
|
server.watcher.removeAllListeners("add");
|
||
|
server.watcher.removeAllListeners("unlink");
|
||
|
});
|
||
|
server.ws.on("custom:open-hot", (data) => {
|
||
|
closeHmr.set(data.type, false);
|
||
|
server.watcher.on("add", () => {
|
||
|
server.restart();
|
||
|
});
|
||
|
server.watcher.on("unlink", () => {
|
||
|
server.restart();
|
||
|
});
|
||
|
});
|
||
|
server.ws.on("custom:reload-hot", () => {
|
||
|
server.restart();
|
||
|
});
|
||
|
},
|
||
|
handleHotUpdate() {
|
||
|
const closeHmrs = Array.from(closeHmr.values());
|
||
|
let closeHmrsBool = false;
|
||
|
for (const key in closeHmrs) {
|
||
|
closeHmrsBool = closeHmrsBool || closeHmrs[key];
|
||
|
}
|
||
|
if (closeHmrsBool)
|
||
|
return [];
|
||
|
}
|
||
|
};
|
||
|
};
|
||
|
|
||
|
// src/components/icon/svg/index.ts
|
||
|
import { readFileSync, readdirSync } from "fs";
|
||
|
var idPerfix = "";
|
||
|
var iconNames = [];
|
||
|
var svgTitle = /<svg([^>+].*?)>/;
|
||
|
var clearHeightWidth = /(width|height)="([^>+].*?)"/g;
|
||
|
var hasViewBox = /(viewBox="[^>+].*?")/g;
|
||
|
var clearReturn = /(\r)|(\n)/g;
|
||
|
var clearFill = /(fill="[^>+].*?")/g;
|
||
|
function findSvgFile(dir) {
|
||
|
const svgRes = [];
|
||
|
const dirents = readdirSync(dir, {
|
||
|
withFileTypes: true
|
||
|
});
|
||
|
for (const dirent of dirents) {
|
||
|
iconNames.push(`${idPerfix}-${dirent.name.replace(".svg", "")}`);
|
||
|
if (dirent.isDirectory()) {
|
||
|
svgRes.push(...findSvgFile(dir + dirent.name + "/"));
|
||
|
} else {
|
||
|
const svg = readFileSync(dir + dirent.name).toString().replace(clearReturn, "").replace(clearFill, 'fill=""').replace(svgTitle, ($1, $2) => {
|
||
|
let width = 0;
|
||
|
let height = 0;
|
||
|
let content = $2.replace(clearHeightWidth, (s1, s2, s3) => {
|
||
|
if (s2 === "width") {
|
||
|
width = s3;
|
||
|
} else if (s2 === "height") {
|
||
|
height = s3;
|
||
|
}
|
||
|
return "";
|
||
|
});
|
||
|
if (!hasViewBox.test($2)) {
|
||
|
content += `viewBox="0 0 ${width} ${height}"`;
|
||
|
}
|
||
|
return `<symbol id="${idPerfix}-${dirent.name.replace(".svg", "")}" ${content}>`;
|
||
|
}).replace("</svg>", "</symbol>");
|
||
|
svgRes.push(svg);
|
||
|
}
|
||
|
}
|
||
|
return svgRes;
|
||
|
}
|
||
|
var svgBuilder = (path, perfix = "local") => {
|
||
|
if (path === "")
|
||
|
return;
|
||
|
idPerfix = perfix;
|
||
|
const res = findSvgFile(path);
|
||
|
return {
|
||
|
name: "svg-transform",
|
||
|
transformIndexHtml(html) {
|
||
|
return html.replace(
|
||
|
"<body>",
|
||
|
`
|
||
|
<body>
|
||
|
<svg id="local-icon" data-icon-name="${iconNames.join(
|
||
|
","
|
||
|
)}" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="position: absolute; width: 0; height: 0">
|
||
|
${res.join("")}
|
||
|
</svg>
|
||
|
`
|
||
|
);
|
||
|
}
|
||
|
};
|
||
|
};
|
||
|
|
||
|
// vite.config.ts
|
||
|
var __vite_injected_original_dirname = "E:\\softstoneFile\\ry-das\\ui\\dasadmin";
|
||
|
var pathResolve = (dir) => {
|
||
|
return resolve(__vite_injected_original_dirname, ".", dir);
|
||
|
};
|
||
|
var viteConfig = ({ mode }) => {
|
||
|
const { VITE_PORT, VITE_OPEN, VITE_BASE_PATH, VITE_OUT_DIR, VITE_APP_PROXY } = loadEnv(mode, process.cwd());
|
||
|
const alias = {
|
||
|
"/@": pathResolve("./src/"),
|
||
|
assets: pathResolve("./src/assets"),
|
||
|
"vue-i18n": "vue-i18n/dist/vue-i18n.cjs.js"
|
||
|
};
|
||
|
const createProxy = (proxyList) => {
|
||
|
const ret = {};
|
||
|
if (proxyList) {
|
||
|
proxyList = JSON.parse(proxyList);
|
||
|
for (const [prefix, target] of proxyList) {
|
||
|
ret[prefix] = {
|
||
|
target,
|
||
|
changeOrigin: true,
|
||
|
rewrite: (path) => path.replace(new RegExp(`^${prefix}`), "")
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
return ret;
|
||
|
};
|
||
|
return {
|
||
|
plugins: [vue(), svgBuilder("./src/assets/icons/"), customHotUpdate()],
|
||
|
root: process.cwd(),
|
||
|
resolve: { alias },
|
||
|
base: VITE_BASE_PATH,
|
||
|
server: {
|
||
|
port: parseInt(VITE_PORT),
|
||
|
open: VITE_OPEN != "false",
|
||
|
proxy: {
|
||
|
...createProxy(VITE_APP_PROXY)
|
||
|
}
|
||
|
},
|
||
|
build: {
|
||
|
cssCodeSplit: false,
|
||
|
sourcemap: false,
|
||
|
outDir: VITE_OUT_DIR,
|
||
|
emptyOutDir: true,
|
||
|
chunkSizeWarningLimit: 1500,
|
||
|
terserOptions: {
|
||
|
compress: {
|
||
|
keep_infinity: true,
|
||
|
// Used to delete console in production environment
|
||
|
drop_console: true,
|
||
|
drop_debugger: true
|
||
|
},
|
||
|
output: {
|
||
|
comments: true
|
||
|
// 去掉注释内容
|
||
|
}
|
||
|
},
|
||
|
rollupOptions: {
|
||
|
output: {
|
||
|
manualChunks: {
|
||
|
// 分包配置,配置完成自动按需加载
|
||
|
vue: ["vue", "vue-router", "pinia", "vue-i18n", "element-plus"],
|
||
|
echarts: ["echarts"]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
};
|
||
|
var vite_config_default = viteConfig;
|
||
|
export {
|
||
|
vite_config_default as default
|
||
|
};
|
||
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAic3JjL3V0aWxzL3ZpdGUudHMiLCAic3JjL2NvbXBvbmVudHMvaWNvbi9zdmcvaW5kZXgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxzb2Z0c3RvbmVGaWxlXFxcXHJ5LWRhc1xcXFx1aVxcXFxkYXNhZG1pblwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcc29mdHN0b25lRmlsZVxcXFxyeS1kYXNcXFxcdWlcXFxcZGFzYWRtaW5cXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L3NvZnRzdG9uZUZpbGUvcnktZGFzL3VpL2Rhc2FkbWluL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHZ1ZSBmcm9tICdAdml0ZWpzL3BsdWdpbi12dWUnXHJcbmltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoJ1xyXG5pbXBvcnQgeyBsb2FkRW52IH0gZnJvbSAndml0ZSdcclxuaW1wb3J0IHR5cGUgeyBVc2VyQ29uZmlnLCBDb25maWdFbnYsIFByb3h5T3B0aW9ucyB9IGZyb20gJ3ZpdGUnXHJcbmltcG9ydCB7IGlzUHJvZCwgY3VzdG9tSG90VXBkYXRlIH0gZnJvbSAnL0AvdXRpbHMvdml0ZSdcclxuaW1wb3J0IHsgc3ZnQnVpbGRlciB9IGZyb20gJy9AL2NvbXBvbmVudHMvaWNvbi9zdmcvaW5kZXgnXHJcblxyXG5jb25zdCBwYXRoUmVzb2x2ZSA9IChkaXI6IHN0cmluZyk6IGFueSA9PiB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZShfX2Rpcm5hbWUsICcuJywgZGlyKVxyXG59XHJcblxyXG4vLyBodHRwczovL3ZpdGVqcy5jbi9jb25maWcvXHJcbmNvbnN0IHZpdGVDb25maWcgPSAoeyBtb2RlIH06IENvbmZpZ0Vudik6IFVzZXJDb25maWcgPT4ge1xyXG4gICAgY29uc3QgeyBWSVRFX1BPUlQsIFZJVEVfT1BFTiwgVklURV9CQVNFX1BBVEgsIFZJVEVfT1VUX0RJUiwgVklURV9BUFBfUFJPWFkgfSA9IGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSlcclxuXHJcbiAgICBjb25zdCBhbGlhczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICAgICAgICAnL0AnOiBwYXRoUmVzb2x2ZSgnLi9zcmMvJyksXHJcbiAgICAgICAgYXNzZXRzOiBwYXRoUmVzb2x2ZSgnLi9zcmMvYXNzZXRzJyksXHJcbiAgICAgICAgJ3Z1ZS1pMThuJzogJ3Z1ZS1pMThuL2Rpc3QvdnVlLWkxOG4uY2pzLmpzJyxcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjcmVhdGVQcm94eSA9IChwcm94eUxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJldCA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIFByb3h5T3B0aW9ucz5cclxuICAgICAgICBpZiAocHJveHlMaXN0KSB7XHJcbiAgICAgICAgICAgIHByb3h5TGlzdCA9IEpTT04ucGFyc2UocHJveHlMaXN0KVxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtwcmVmaXgsIHRhcmdldF0gb2YgcHJveHlMaXN0KSB7XHJcbiAgICAgICAgICAgICAgICByZXRbcHJlZml4XSA9IHtcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IHRhcmdldCxcclxuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+IHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKGBeJHtwcmVmaXh9YCksICcnKSxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJldFxyXG4gICAgfVxyXG5cclxuICAgIC8vIGxldCBwcm94eTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgUHJveHlPcHRpb25zPiA9IHt9XHJcbiAgICAvLyBpZiAoVklURV9QUk9YWV9VUkwpIHtcclxuICAgIC8vICAgICBwcm94eSA9IHtcclxuICAgIC8vICAgICAgICAgJy8nOiB7XHJcbiAgICAvLyAgICAgICAgICAgICB0YXJnZXQ6IFZJVEVfUFJPWFlfVVJMLFxyXG4gICAgLy8gICAgICAgICAgICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxyXG4gICAgLy8gICAgICAgICB9LFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHBsdWdpbnM6IFt2dWUoKSwgc3ZnQnVpbGRlcignLi9zcmMvYXNzZXRzL2ljb25zLycpLCBjdXN0b21Ib3RVcGRhdGUoKV0sXHJcbiAgICAgICAgcm9vdDogcHJvY2Vzcy5jd2QoKSxcclxuICAgICAgICByZXNvbHZlOiB7IGFsaWFzIH0sXHJcbiAgICAgICAgYmFzZTogVklURV9CQVNFX1BBVEgsXHJcbiAgICAgICAgc2VydmVyOiB7XHJcbiAgICAgICAgICAgIHBvcnQ6IHBhcnNlSW50KFZJVEVfUE9SVCksXHJcbiAgICAgICAgICAgIG9wZW46IFZJVEVfT1BFTiAhPSAnZmFsc2UnLFxyXG4gICAgICAgICAgICBwcm94eToge1xyXG4gICAgICAgICAgICAgICAgLi4uY3JlYXRlUHJveHkoVklURV9BUFBfUFJPWFkpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgYnVpbGQ6IHtcclxuICAgICAgICAgICAgY3NzQ29kZVNwbGl0OiBmYWxzZSxcclxuICAgICAgICAgICAgc291cmNlbWFwOiBmYWxzZSxcclxuICAgICAgICAgICAgb3V0RGlyOiBWSVRFX09VVF9ESVIsXHJcbiAgICAgICAgICAgIGVtcHR5T3V0RGlyOiB0cnVlLFxyXG4gICAgICAgICAgICBjaHVua1NpemVXYXJuaW5nTGltaXQ6IDE1MDAsXHJcbiAgICAgICAgICAgIHRlcnNlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGNvbXByZXNzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAga2VlcF9pbmZpbml0eTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICAvLyBVc2VkIHRvIGRlbGV0ZSBjb25zb2xlIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRcclxuICAgICAgICAgICAgICAgICAgICBkcm9wX2NvbnNvbGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZHJvcF9kZWJ1Z2dlcjogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBvdXRwdXQ6IHtcclxuICAgICAgICAgICAgICAgICAgI
|