55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
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,
|
|
},
|
|
};
|
|
};
|