summaryrefslogtreecommitdiff
path: root/client/simple/vite.config.ts
diff options
context:
space:
mode:
authorIvan Gabaldon <igabaldon@inetol.net>2025-07-06 12:27:28 +0200
committerMarkus Heiser <markus.heiser@darmarIT.de>2025-08-18 16:38:32 +0200
commit60bd8b90f04d5d825fc8ac279cb7fdfde9fe78ea (patch)
tree19b2639638e7845597f9aa839eda39a456188a1c /client/simple/vite.config.ts
parentadc4361eb919604889dc0661e75ef6ac8cfc4d23 (diff)
[enh] theme/simple: custom router
Lay the foundation for loading scripts granularly depending on the endpoint it's on. Remove vendor specific prefixes as there are now managed by browserslist and LightningCSS. Enabled quite a few rules in Biome that don't come in recommended to better catch issues and improve consistency. Related: - https://github.com/searxng/searxng/pull/5073#discussion_r2256037965 - https://github.com/searxng/searxng/pull/5073#discussion_r2256057100
Diffstat (limited to 'client/simple/vite.config.ts')
-rw-r--r--client/simple/vite.config.ts33
1 files changed, 17 insertions, 16 deletions
diff --git a/client/simple/vite.config.ts b/client/simple/vite.config.ts
index a3c766418..53225f402 100644
--- a/client/simple/vite.config.ts
+++ b/client/simple/vite.config.ts
@@ -6,11 +6,12 @@ import { resolve } from "node:path";
import { constants as zlibConstants } from "node:zlib";
import browserslistToEsbuild from "browserslist-to-esbuild";
import { browserslistToTargets } from "lightningcss";
+import type { PreRenderedAsset } from "rolldown";
import type { Config } from "svgo";
import type { UserConfig } from "vite";
import analyzer from "vite-bundle-analyzer";
-import manifest from "./package.json";
-import { plg_svg2png, plg_svg2svg } from "./tools/plg";
+import manifest from "./package.json" with { type: "json" };
+import { plg_svg2png, plg_svg2svg } from "./tools/plg.ts";
const ROOT = "../../"; // root of the git repository
@@ -20,7 +21,7 @@ const PATH = {
modules: "node_modules/",
src: "src/",
templates: resolve(ROOT, "searx/templates/simple/")
-};
+} as const;
const svg2svg_opts: Config = {
plugins: [{ name: "preset-default" }, "sortAttrs", "convertStyleToAttrs"]
@@ -49,37 +50,37 @@ export default {
rollupOptions: {
input: {
// build CSS files
- "searxng-ltr.min.css": `${PATH.src}/less/style-ltr.less`,
- "searxng-rtl.min.css": `${PATH.src}/less/style-rtl.less`,
- "rss.min.css": `${PATH.src}/less/rss.less`,
+ "searxng-ltr.css": `${PATH.src}/less/style-ltr.less`,
+ "searxng-rtl.css": `${PATH.src}/less/style-rtl.less`,
+ "rss.css": `${PATH.src}/less/rss.less`,
// build script files
- "searxng.min": `${PATH.src}/js/main/index.ts`,
+ "searxng.core": `${PATH.src}/js/core/index.ts`,
// ol
- "ol.min": `${PATH.src}/js/pkg/ol.ts`,
- "ol.min.css": `${PATH.modules}/ol/ol.css`
+ ol: `${PATH.src}/js/pkg/ol.ts`,
+ "ol.css": `${PATH.modules}/ol/ol.css`
},
// file naming conventions / pathnames are relative to outDir (PATH.dist)
output: {
- entryFileNames: "js/[name].js",
- chunkFileNames: "js/[name].js",
- assetFileNames: ({ names }) => {
+ entryFileNames: "js/[name].min.js",
+ chunkFileNames: "js/[name].min.js",
+ assetFileNames: ({ names }: PreRenderedAsset): string => {
const [name] = names;
const extension = name?.split(".").pop();
switch (extension) {
case "css":
- return `css/[name][extname]`;
+ return "css/[name].min[extname]";
case "js":
- return `js/[name][extname]`;
+ return "js/[name].min[extname]";
case "png":
case "svg":
- return `img/[name][extname]`;
+ return "img/[name][extname]";
default:
console.warn("Unknown asset:", name);
- return `[name][extname]`;
+ return "[name][extname]";
}
}
}