import { resolve } from "node:path"; import { fileURLToPath } from "node:url"; import vue from "@vitejs/plugin-vue"; import { defineConfig, externalizeDepsPlugin } from "electron-vite"; import Components from "unplugin-vue-components/vite"; import { AntDesignVueResolver } from "unplugin-vue-components/resolvers"; const rootDir = fileURLToPath(new URL(".", import.meta.url)); const workspacePackages = [ "@geo/shared-types", "@geo/http-client", "@geo/publisher-platforms", "@geo/ui-shared", ]; const workspaceAliases = { "@geo/shared-types": resolve(rootDir, "../../packages/shared-types/src/index.ts"), "@geo/http-client": resolve(rootDir, "../../packages/http-client/src/index.ts"), "@geo/publisher-platforms": resolve(rootDir, "../../packages/publisher-platforms/src/index.ts"), "@geo/ui-shared": resolve(rootDir, "../../packages/ui-shared/src/index.ts"), "@geo/ui-shared/tokens": resolve(rootDir, "../../packages/ui-shared/src/tokens/index.ts"), "@geo/ui-shared/tokens.css": resolve(rootDir, "../../packages/ui-shared/src/tokens/index.css"), }; export default defineConfig({ main: { plugins: [externalizeDepsPlugin({ exclude: workspacePackages })], build: { rollupOptions: { input: { bootstrap: resolve(rootDir, "src/main/bootstrap.ts"), }, output: { format: "cjs", entryFileNames: "[name].cjs", chunkFileNames: "[name]-[hash].cjs", }, }, }, resolve: { alias: { "@main": resolve(rootDir, "src/main"), ...workspaceAliases, }, }, }, preload: { plugins: [externalizeDepsPlugin({ exclude: workspacePackages })], build: { rollupOptions: { input: { bridge: resolve(rootDir, "src/preload/bridge.ts"), }, output: { format: "cjs", entryFileNames: "[name].cjs", chunkFileNames: "[name]-[hash].cjs", }, }, }, resolve: { alias: { "@preload": resolve(rootDir, "src/preload"), ...workspaceAliases, }, }, }, renderer: { plugins: [ vue(), Components({ dts: false, resolvers: [ AntDesignVueResolver({ importStyle: false, }), ], }), ], resolve: { alias: { "@renderer": resolve(rootDir, "src/renderer"), ...workspaceAliases, }, }, }, });