Saltar al contenido

¿Cómo utilizar el módulo FS dentro de la aplicación Electron.Atom WebPack?

Solución:

El problema está resuelto.

Necesita usarlo en la aplicación electron (donde agrega el paquete):

var remote = require('electron').remote;
var electronFs = remote.require('fs');
var electronDialog = remote.dialog;

Además de la respuesta aceptada.

Si esta usando Webpack (como cuando usa Angular, React u otros marcos) require será resuelto por webpack, lo que arruinará su uso en tiempo de ejecución.

Usar window.require en lugar de.

Ex:

var remote = window.require('electron').remote;
var electronFs = remote.require('fs');
var electronDialog = remote.dialog;

Nota: No es necesario utilizar el control remoto para acceder a ninguna de las API de nodo desde un proceso de representación, ya que está completamente expuesto.

const fs = window.require('fs');
const path = window.require('path');

servirá.

Actualizar

A partir de la versión 5 de Electron, la API de nodo ya no está expuesta de forma predeterminada en el proceso del renderizador.

El predeterminado para el nodeIntegration bandera cambió de verdadero a falso.

Puede habilitarlo al crear la ventana del navegador:

app.on('ready', () => {
    mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true, // <--- flag
            nodeIntegrationInWorker: true // <---  for web workers
        }
    });
});

El riesgo de seguridad de activar nodeIntegration

nodeIntegration: true es un riesgo de seguridad solo cuando está ejecutando algún código remoto que no es de confianza en su aplicación. Por ejemplo, suponga que su aplicación abre una página web de terceros. Eso sería un riesgo de seguridad porque la página web de terceros tendrá acceso al tiempo de ejecución del nodo y puede ejecutar algún código malicioso en el sistema de archivos de su usuario. En ese caso, tiene sentido establecer nodeIntegration: false. Si su aplicación no muestra ningún contenido remoto o solo muestra contenido confiable, entonces configure nodeIntegration: true está bien.

Y finalmente, la forma segura recomendada del documento:

https://electronjs.org/docs/tutorial/security#2-do-not-enable-nodejs-integration-for-remote-content

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *