import { resolve } from "node:path"; import { loadEnv } from "vite"; import vue from "@vitejs/plugin-vue"; import vueJsx from "@vitejs/plugin-vue-jsx"; import topLevelAwait from "vite-plugin-top-level-await"; import dayjs from "dayjs"; import pkg from "./package.json"; import type { UserConfig, ConfigEnv } from "vite"; const CWD = process.cwd(); const __APP_INFO__ = { pkg, lastBuildTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), }; // https://vitejs.dev/config/ export default ({ command, mode }: ConfigEnv): UserConfig => { // 环境变量 const { VITE_BASE_URL, VITE_DROP_CONSOLE } = loadEnv(mode, CWD); const isBuild = command === "build"; return { base: VITE_BASE_URL, define: { __APP_INFO__: JSON.stringify(__APP_INFO__), }, resolve: { alias: [ { find: "@", replacement: resolve(__dirname, "./src"), }, ], }, plugins: [ vue(), vueJsx(), topLevelAwait({ // The export name of top-level await promise for each chunk module promiseExportName: "__tla", // The function to generate import names of top-level await promise in each chunk module promiseImportName: (i) => `__tla_${i}`, }), ], server: { host: "0.0.0.0", port: 8088, }, }; };