import { getPluginsList } from "./build/plugins"; import { exclude, include } from "./build/optimize"; import { type ConfigEnv, loadEnv, type UserConfigExport } from "vite"; import { __APP_INFO__, alias, root, wrapperEnv } from "./build/utils"; import { serverOptions } from "./build/server"; import { buildEnvironment } from "./build/buildEnv"; export default ({ mode }: ConfigEnv): UserConfigExport => { const { VITE_CDN, VITE_PORT, VITE_COMPRESSION, VITE_PUBLIC_PATH } = wrapperEnv(loadEnv(mode, root)); return { base: VITE_PUBLIC_PATH, root, resolve: { alias }, // 服务端渲染 server: serverOptions(mode), plugins: getPluginsList(VITE_CDN, VITE_COMPRESSION, VITE_PORT), // https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options optimizeDeps: { include, exclude }, esbuild: { pure: ["console.log", "debugger"], jsxFactory: "h", jsxFragment: "Fragment", jsxInject: "import { h } from 'vue';" }, build: buildEnvironment(), define: { __INTLIFY_PROD_DEVTOOLS__: false, __APP_INFO__: JSON.stringify(__APP_INFO__) } }; };