67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
import { defineConfig } from "vite";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const templateDir = path.resolve(__dirname, "../backend/bot/app/web/templates");
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
const isAdminBuild = mode === "admin";
|
|
const isDocsDemoBuild = mode === "docs-demo";
|
|
const outputBase = isAdminBuild
|
|
? "subscription_webapp_admin"
|
|
: isDocsDemoBuild
|
|
? "subscription_webapp_docs_demo"
|
|
: "subscription_webapp";
|
|
const entry = isAdminBuild
|
|
? "src/adminEntry.js"
|
|
: isDocsDemoBuild
|
|
? "src/docsDemoEntry.js"
|
|
: "src/main.js";
|
|
|
|
return {
|
|
resolve: {
|
|
alias: {
|
|
$lib: path.resolve(__dirname, "src/lib"),
|
|
$components: path.resolve(__dirname, "src/lib/components"),
|
|
},
|
|
},
|
|
plugins: [
|
|
tailwindcss(),
|
|
svelte({
|
|
compilerOptions: isAdminBuild ? { compatibility: { componentApi: 4 } } : {},
|
|
}),
|
|
],
|
|
build: {
|
|
outDir: templateDir,
|
|
emptyOutDir: false,
|
|
minify: false,
|
|
sourcemap: false,
|
|
cssCodeSplit: false,
|
|
lib: {
|
|
entry: path.resolve(__dirname, entry),
|
|
name: isAdminBuild ? "SubscriptionWebAppAdmin" : "SubscriptionWebApp",
|
|
formats: ["iife"],
|
|
fileName: () => `${outputBase}.js`,
|
|
cssFileName: outputBase,
|
|
},
|
|
rolldownOptions: {
|
|
checks: {
|
|
pluginTimings: false,
|
|
},
|
|
output: {
|
|
assetFileNames: (assetInfo) => {
|
|
if (assetInfo.name && assetInfo.name.endsWith(".css")) {
|
|
return `${outputBase}.css`;
|
|
}
|
|
return `${outputBase}.[name][extname]`;
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
});
|