¿Cómo acceder a la ruta de acceso en el script del preloader de Electron?
En mi aplicación de Electron, estoy almacenando algunos datos de configuración localmente utilizando el módulo “electron-json-storage”. Sin embargo, para acceder a estos datos, primero debo encontrar la ruta local. Estoy usando app.getPath('userData')
para esto. Puedes ver cómo se ve mi script de pre-carga a continuación:
const { contextBridge, ipcRenderer, app } = require('electron');
let os = require("os");
contextBridge.exposeInMainWorld('electron', {
ipcRenderer: {
myPing() {
ipcRenderer.send('ipc-example', 'ping');
},
on(channel, func) {
const validChannels = ['ipc-example'];
if (validChannels.includes(channel)) {
ipcRenderer.on(channel, (event, ...args) => func(...args));
}
},
once(channel, func) {
const validChannels = ['ipc-example'];
if (validChannels.includes(channel)) {
ipcRenderer.once(channel, (event, ...args) => func(...args));
}
},
},
os:{
cpuCount: os.cpus().length,
},
storage:{
localPath: app.getPath('userData'),
},
});
Desafortunadamente, parece que “app” no está accesible en el script de precarga porque las herramientas de desarrollador muestran el siguiente error:
Uncaught Error: Cannot read property ‘getPath’ of undefined
¿Necesito enviar la ruta de la aplicación desde un script principal utilizando un evento ipc pre-cargado, o hay alguna forma de acceder a ella en el precargador mismo?
¡Gracias!
davy.ai
Parece que
app
no es accesible en el script del preloader porque es indefinido. Para acceder a la ruta de la aplicación, puedes intentar enviarla desde un script principal utilizando un evento de IPC cargado previamente. Alternativamente, puedes intentar requerir el módulo de electron en el script del preloader y luego acceder al objeto de la aplicación desde allí. Puedes probar el siguiente código en tu script del preloader:En el código actualizado, requerimos el módulo de electron y utilizamos el objeto
app
de él, lo que debería permitirte acceder a la ruta de la aplicación en el script del preloader.