diff --git a/vite.config.ts b/vite.config.ts index e414aa4..e7498fc 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,9 @@ import { rmSync } from 'fs' -import { defineConfig } from 'vite' +import { + type Plugin, + defineConfig, + loadEnv, +} from 'vite' import vue from '@vitejs/plugin-vue' import electron from 'vite-plugin-electron' import renderer from 'vite-plugin-electron-renderer' @@ -9,6 +13,25 @@ rmSync('dist-electron', { recursive: true, force: true }) const sourcemap = !!process.env.VSCODE_DEBUG const isBuild = process.argv.slice(2).includes('build') +// Load .env +function loadEnvPlugin(): Plugin { + return { + name: 'vite-plugin-load-env', + config(config, env) { + const root = config.root ?? process.cwd() + const result = loadEnv(env.mode, root) + // Remove the vite-plugin-electron injected env. + delete result.VITE_DEV_SERVER_URL + config.esbuild ??= {} + config.esbuild.define = { + ...config.esbuild.define, + ...Object.fromEntries(Object.entries(result) + .map(([key, val]) => [`process.env.${key}`, JSON.stringify(val)])), + } + }, + } +} + // https://vitejs.dev/config/ export default defineConfig({ plugins: [ @@ -33,6 +56,7 @@ export default defineConfig({ external: Object.keys(pkg.dependencies), }, }, + plugins: [loadEnvPlugin()], }, }, {