| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | import dayjs from "dayjs";import { resolve } from "path";import pkg from "./package.json";import { warpperEnv, regExps } from "./build";import { getPluginsList } from "./build/plugins";import { UserConfigExport, ConfigEnv, loadEnv } from "vite";// 当前执行node命令时文件夹的地址(工作目录)const root: string = process.cwd();// 路径查找const pathResolve = (dir: string): string => {  return resolve(__dirname, ".", dir);};// 设置别名const alias: Record<string, string> = {  "/@": pathResolve("src"),  "@build": pathResolve("build")};const { dependencies, devDependencies, name, version } = pkg;const __APP_INFO__ = {  pkg: { dependencies, devDependencies, name, version },  lastBuildTime: dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss")};export default ({ command, mode }: ConfigEnv): UserConfigExport => {  const {    VITE_PORT,    VITE_LEGACY,    VITE_PUBLIC_PATH,    VITE_PROXY_DOMAIN,    VITE_PROXY_DOMAIN_REAL  } = warpperEnv(loadEnv(mode, root));  return {    base: VITE_PUBLIC_PATH,    root,    resolve: {      alias    },    css: {      // https://github.com/vitejs/vite/issues/5833      postcss: {        plugins: [          {            postcssPlugin: "internal:charset-removal",            AtRule: {              charset: atRule => {                if (atRule.name === "charset") {                  atRule.remove();                }              }            }          }        ]      }    },    // 服务端渲染    server: {      // 是否开启 https      https: false,      // 端口号      port: VITE_PORT,      host: "0.0.0.0",      // 本地跨域代理      proxy:        VITE_PROXY_DOMAIN_REAL.length > 0          ? {              [VITE_PROXY_DOMAIN]: {                target: VITE_PROXY_DOMAIN_REAL,                // ws: true,                changeOrigin: true,                rewrite: (path: string) => regExps(path, VITE_PROXY_DOMAIN)              }            }          : null    },    plugins: getPluginsList(command, VITE_LEGACY),    optimizeDeps: {      include: ["pinia", "vue-i18n", "lodash-es", "@vueuse/core"],      exclude: ["@pureadmin/theme/dist/browser-utils"]    },    build: {      sourcemap: false,      brotliSize: false,      // 消除打包大小超过500kb警告      chunkSizeWarningLimit: 4000    },    define: {      __INTLIFY_PROD_DEVTOOLS__: false,      __APP_INFO__: JSON.stringify(__APP_INFO__)    }  };};
 |