использование .env файла в приложение собранном electronJS
Возникла проблема необходимо использовать переменные окружения для подключения к БД в десктопном приложение собранном с помощью ElectronJS. Старый синтаксис позволял использовать функцию remote, но его убрали из-за проблем с безопасностью, сейчас рекомендуется использовать ipcRenderer и ipcMain. Но скомпилированное приложение упаковывает этот файл в само приложение и когда необходимо что-то поменять, приходится перекомпилировать приложение. Упаковываю с помощью electron-bulder. Есть ли возможность как то вынести его наружу. Или использовать какой-то другой подход для передачи настроек подключения к БД?
что использую сейчас: в main.js -
const { app, BrowserWindow, ipcMain } = require('electron');
const dotenv = require('dotenv')
const fs = require('fs')
let mainWindow;
const envConfig = dotenv.parse(fs.readFileSync(`${__dirname}/.env`))
ipcMain.on('get-env-variables', (event) => {
event.returnValue = envConfig
})
в render.js -
const { ipcRenderer } = require('electron')
const envVariables = ipcRenderer.sendSync('get-env-variables')
const configLKA = {
user: envVariables.DB_LKA_USER,
password: envVariables.DB_LKA_PASSWORD,
server: envVariables.DB_LKA_HOST,
database: envVariables.DB_LKA_DB,
options: {
encrypt: true,
}
};
package.json -
"name": "desktop",
"version": "1.0.0",
"description": "test",
"main": "main.js",
"scripts": {
"start": "electron-forge start",
"test": "echo \"Error: no test specified\" && exit 1",
"package": "electron-forge package",
"make": "electron-forge make",
"pack": "electron-builder --dir",
"dist": "electron-builder"
},
"build": {
"appId": "com.my-electron-app",
"productName": "My Electron App",
"extraFiles": [
{
"from": ".env",
"to": ".env",
"filter": [
"**/*"
]
}
],
"directories": {
"output": "dist"
},
"win": {
"target": "nsis"
},
"mac": {
"target": "dmg"
},
"linux": {
"target": "AppImage"
}
},