vite.config.js
import { fileURLToPath, URL } from “node:url”;
import { defineConfig, loadEnv } from “vite”;
import vue from “@vitejs/plugin-vue”;
import { viteSingleFile } from “vite-plugin-singlefile”;
export default defineConfig(({ command, mode, ssrBuild }) => {
const env = loadEnv(mode, process.cwd(), “”);
if (mode === “production”) {
return {
plugins: [vue(), viteSingleFile()],
resolve: {
alias: {
“@”: fileURLToPath(new URL(“./src”, import.meta.url)),
},
},
base: env.BASE_APP_URL,
build: {
target: “es2020”,
// Set the output directory relative to the local root folder
outDir: “production”,
cssCodeSplit: false,
sourcemap: false,
manifest: false,
ssrManifest: false,
emptyOutDir: true,
chunkSizeWarningLimit: 10000,
},
};
} else if (mode === “sandbox”) {
return {
plugins: [vue(), viteSingleFile()],
resolve: {
alias: {
“@”: fileURLToPath(new URL(“./src”, import.meta.url)),
},
},
base: env.BASE_APP_URL,
build: {
target: “es2020”,
// Set the output directory relative to the local root folder
outDir: “sandbox”,
sourcemap: false,
manifest: false,
ssrManifest: false,
emptyOutDir: true,
chunkSizeWarningLimit: 10000,
},
};
} else if (mode === “development”) {
return {
plugins: [vue(), viteSingleFile()],
resolve: {
alias: {
“@”: fileURLToPath(new URL(“./src”, import.meta.url)),
},
},
base: env.BASE_APP_URL,
build: {
target: “es2020”,
outDir: “development”,
sourcemap: false,
manifest: false,
ssrManifest: false,
emptyOutDir: true,
chunkSizeWarningLimit: 10000,
},
};
} else {
return {
plugins: [vue()],
resolve: {
alias: {
“@”: fileURLToPath(new URL(“./src”, import.meta.url)),
},
},
base: env.BASE_APP_URL,
build: {
target: “es2020”,
sourcemap: true,
manifest: true,
ssrManifest: false,
emptyOutDir: true,
chunkSizeWarningLimit: 10000,
},
};
}
});