From 2c2fe874be487e286e7b63fde922aaac228e4a19 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Mon, 17 Jul 2023 10:36:05 -0400 Subject: [PATCH] ci: initial backend vite config --- vite.config.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 vite.config.js diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..d73c924 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,47 @@ +import { defineConfig } from "vite"; +import optimizer from "vite-plugin-optimizer"; +import { nodePolyfills } from "vite-plugin-node-polyfills"; +import { resolve } from "path"; + +const config = {}; + +const currentConfig = config[process.env.LIB_NAME]; +if (currentConfig === undefined) { + throw new Error("LIB_NAME is not defined or is not valid"); +} + +["background", "bootloader", "bridge", "crypto", "cryptoLoader"].forEach( + (item) => { + config[item] = { + entry: resolve(__dirname, `./src/main/${item}.ts`), + fileName: "math.js", + }; + }, +); + +export default defineConfig({ + build: { + outDir: "lib", + lib: { + entry: "build/index.js", + name: "main", + formats: ["cjs"], + ...currentConfig, + }, + minify: false, + rollupOptions: { output: { inlineDynamicImports: true } }, + }, + resolve: { + dedupe: ["@lumeweb/libportal", "@lumeweb/libweb", "@lumeweb/libkernel"], + }, + plugins: [ + optimizer({ + "node-fetch": + "const e = undefined; export default e;export {e as Response, e as FormData, e as Blob};", + }), + nodePolyfills({ + exclude: ["fs"], + globals: { Buffer: true, global: true, process: true }, + }), + ], +});