| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | import type { Plugin } from "vite";import { isArray } from "@pureadmin/utils";import compressPlugin from "vite-plugin-compression";export const configCompressPlugin = (  compress: ViteCompression): Plugin | Plugin[] => {  if (compress === "none") return null;  const gz = {    // 生成的压缩包后缀    ext: ".gz",    // 体积大于threshold才会被压缩    threshold: 0,    // 默认压缩.js|mjs|json|css|html后缀文件,设置成true,压缩全部文件    filter: () => true,    // 压缩后是否删除原始文件    deleteOriginFile: false  };  const br = {    ext: ".br",    algorithm: "brotliCompress",    threshold: 0,    filter: () => true,    deleteOriginFile: false  };  const codeList = [    { k: "gzip", v: gz },    { k: "brotli", v: br },    { k: "both", v: [gz, br] }  ];  const plugins: Plugin[] = [];  codeList.forEach(item => {    if (compress.includes(item.k)) {      if (compress.includes("clear")) {        if (isArray(item.v)) {          item.v.forEach(vItem => {            plugins.push(              compressPlugin(Object.assign(vItem, { deleteOriginFile: true }))            );          });        } else {          plugins.push(            compressPlugin(Object.assign(item.v, { deleteOriginFile: true }))          );        }      } else {        if (isArray(item.v)) {          item.v.forEach(vItem => {            plugins.push(compressPlugin(vItem));          });        } else {          plugins.push(compressPlugin(item.v));        }      }    }  });  return plugins;};
 |