From e522b5bbc63bb6b416e46b560ab4b5b205cb97be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=89=E9=9E=8B=E6=B2=A1=E5=8F=B7?= <308487730@qq.com> Date: Thu, 8 Dec 2022 09:24:46 +0800 Subject: [PATCH] feat: load `.env` file for Electron-Main --- vite.config.ts | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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()], }, }, {