summaryrefslogtreecommitdiff
path: root/client/simple/vite.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/simple/vite.config.js')
-rw-r--r--client/simple/vite.config.js121
1 files changed, 121 insertions, 0 deletions
diff --git a/client/simple/vite.config.js b/client/simple/vite.config.js
new file mode 100644
index 000000000..90d63e46e
--- /dev/null
+++ b/client/simple/vite.config.js
@@ -0,0 +1,121 @@
+/**
+ * CONFIG: https://vite.dev/config/
+ */
+
+import { resolve } from "node:path";
+import { defineConfig } from "vite";
+import { viteStaticCopy } from "vite-plugin-static-copy";
+
+
+const ROOT = "../.."; // root of the git reposetory
+
+const PATH = {
+
+ dist: resolve(ROOT, "searx/static/themes/simple"),
+ // dist: resolve(ROOT, "client/simple/dist"),
+
+ src: "src",
+ modules: "node_modules",
+ brand: "src/brand",
+ static: resolve(ROOT, "client/simple/static"),
+ leaflet: resolve(ROOT, "client/simple/node_modules/leaflet/dist"),
+ templates: resolve(ROOT, "searx/templates/simple"),
+};
+
+
+};
+
+
+export default defineConfig({
+
+ root: PATH.src,
+ mode: "production",
+ // mode: "development",
+
+ // FIXME: missing CCS sourcemaps!!
+ // see: https://github.com/vitejs/vite/discussions/13845#discussioncomment-11992084
+ //
+ // what I have tried so far (see config below):
+ //
+ // - build.sourcemap
+ // - esbuild.sourcemap
+ // - css.preprocessorOptions.less.sourceMap
+
+ css: {
+ devSourcemap: true,
+ preprocessorOptions: {
+ less: {
+ // FIXME: missing CCS sourcemaps!!
+ sourceMap: {
+ outputSourceFiles: true,
+ sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map'; },
+ },
+ // env: 'development',
+ // relativeUrls: true,
+ // javascriptEnabled: true,
+ },
+ },
+ }, // end: css
+
+ esbuild : {
+ // FIXME: missing CCS sourcemaps!!
+ sourcemap: true
+ },
+
+ build: {
+ manifest: "manifest.json",
+ emptyOutDir: true,
+ assetsDir: "",
+ outDir: PATH.dist,
+
+ // FIXME: missing CCS sourcemaps!!
+ sourcemap: true,
+
+ // https://vite.dev/config/build-options.html#build-cssminify
+ cssMinify: true,
+ // cssMinify: "esbuild",
+ minify: "esbuild",
+
+ rollupOptions: {
+ input: {
+
+ // build CSS files
+ "css/searxng.min.css": PATH.src + "/less/style-ltr.less",
+ "css/searxng-rtl.min.css": PATH.src + "/less/style-rtl.less",
+ "css/rss.min.css": PATH.src + "/less/rss.less",
+
+ // build JS files
+ "js/searxng.head.min": PATH.src + "/js/searxng.head.js",
+ "js/searxng.min": PATH.src + "/js/searxng.js",
+
+ },
+
+ // file naming conventions / pathnames are relative to outDir (PATH.dist)
+ output: {
+ entryFileNames: "[name].js",
+ chunkFileNames: "[name].js",
+ assetFileNames: "[name].[ext]",
+ // Vite does not support "rollupOptions.output.sourcemap".
+ // Please use "build.sourcemap" instead.
+ // sourcemap: true,
+ },
+
+ },
+ }, // end: build
+
+ plugins: [
+
+ // Leaflet
+
+ viteStaticCopy({
+ targets: [
+ { src: PATH.leaflet + "/leaflet.{js,js.map}", dest: PATH.dist + "/js" },
+ { src: PATH.leaflet + "/images/*.png", dest: PATH.dist + "/css/images/" },
+ { src: PATH.leaflet + "/*.{css,css.map}", dest: PATH.dist + "/css" },
+ { src: PATH.static + "/**/*", dest: PATH.dist },
+ ]
+ })
+ ],
+ ] // end: plugins
+
+});