2017-01-05 7 views
0

Ich bin neu in Electron Framework. Ich füge meine benutzerdefinierte config.json in meinem Projektstamm hinzu und greife auf sie in einer Datei main.js zu. Diese Datei wird erfolgreich geladen werden, wenn ich Projekt mit npm Start ausführen, aber wenn ich exe-Datei mit elektronen Builder, erstellen erhalte ich eine Fehlermeldung: -Electron: meine benutzerdefinierte config.json wird nicht geladen

Uncaught Error: ENOENT: no such file or directory, open 'C:\Users\Rohaan Ishfaq\AppData\Local\Programs\examsoft_V0.20\config.json 

Hier ist main.js Datei: -

// Module for creating child processes 
const spawn = require('child_process').spawn; 
// Module for path manipulations 
const path = require('path'); 
// Module to create calls between windows 
const ipc = require('electron').ipcRenderer; 
// Module jQuery 
const $ = require('jquery'); 
// Module for file manipulations 
const fs = require('fs'); 
// config json 
const config = JSON.parse(fs.readFileSync('config.json', 'utf-8')); 

(function main() { 

    init(); 
    events(); 

    function init() { 
     createSSHKey(); 
    } 

    function events() { 

     // get login btn by id 
     const loginBtn = $('#login'); 
     // register event listener 
     loginBtn.click(function (event) { 
      ipc.send('change-to-login'); 
     }); 
    } 

    function createSSHKey() { 
     if(!fs.existsSync(config.utilsPath)) 
      alert(config.utilsPath + ' doesn\'t exist'); 
     else { 
      var sshKeyPath = path.normalize(config.sshKeygenPath); 
      //trigger .bat file 
      ls = spawn('cmd.exe', ['/c', sshKeyPath]); 

      //on data 
      ls.stdout.on('data', function (data) { 
       console.log('stdout: ' + data); 
      }); 

      //on error 
      ls.stderr.on('data', function (data) { 
       alert('Error Occured: '+ data); 
       process.exit(1); 
      }); 

      //on exit 
      ls.on('exit', function (code) { 
       alert('SSH key pair has been created successfully. Check '+config.usersPath+process.env.USERNAME+config.sshDirectoryPath+' directory'); 
       enableLogin(); 
      }); 
     } 
    } 

    function enableLogin() { 
     $('#login').text('Start'); 
     $('#login').prop('disabled', false); 
    } 

})(); 

Jeder, der diese Art von Problem konfrontiert und es erfolgreich behoben hat?

Antwort

0

Da Ihre App in asar Archiv gepackt ist. Um direkt auf Ihre Dateien zuzugreifen, konfigurieren Sie bitte die Option extraFiles.

+0

Können Sie bitte ein Beispiel für die Verwendung der Option extraFiles geben? – Ronio

+0

z.B. '" extraResources ":" **/config.json ",' in 'build' (https://github.com/Quacky2200/Spotify-Web-Player-for-Linux/blob/master/package.json#L18). – develar

Verwandte Themen