perf: optimize webapp asset delivery, split admin webapp bundle
This commit is contained in:
+36
-31
@@ -8,39 +8,44 @@ 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({
|
||||
resolve: {
|
||||
alias: {
|
||||
$lib: path.resolve(__dirname, "src/lib"),
|
||||
$components: path.resolve(__dirname, "src/lib/components"),
|
||||
},
|
||||
},
|
||||
plugins: [tailwindcss(), svelte()],
|
||||
build: {
|
||||
outDir: templateDir,
|
||||
emptyOutDir: false,
|
||||
minify: false,
|
||||
sourcemap: false,
|
||||
cssCodeSplit: false,
|
||||
lib: {
|
||||
entry: path.resolve(__dirname, "src/main.js"),
|
||||
name: "SubscriptionWebApp",
|
||||
formats: ["iife"],
|
||||
fileName: () => "subscription_webapp.js",
|
||||
cssFileName: "subscription_webapp",
|
||||
},
|
||||
rolldownOptions: {
|
||||
checks: {
|
||||
pluginTimings: false,
|
||||
export default defineConfig(({ mode }) => {
|
||||
const isAdminBuild = mode === "admin";
|
||||
const outputBase = isAdminBuild ? "subscription_webapp_admin" : "subscription_webapp";
|
||||
|
||||
return {
|
||||
resolve: {
|
||||
alias: {
|
||||
$lib: path.resolve(__dirname, "src/lib"),
|
||||
$components: path.resolve(__dirname, "src/lib/components"),
|
||||
},
|
||||
output: {
|
||||
assetFileNames: (assetInfo) => {
|
||||
if (assetInfo.name && assetInfo.name.endsWith(".css")) {
|
||||
return "subscription_webapp.css";
|
||||
}
|
||||
return "subscription_webapp.[name][extname]";
|
||||
},
|
||||
plugins: [tailwindcss(), svelte()],
|
||||
build: {
|
||||
outDir: templateDir,
|
||||
emptyOutDir: false,
|
||||
minify: false,
|
||||
sourcemap: false,
|
||||
cssCodeSplit: false,
|
||||
lib: {
|
||||
entry: path.resolve(__dirname, isAdminBuild ? "src/adminEntry.js" : "src/main.js"),
|
||||
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]`;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user