2017-01-05 48 views
0

我是Electron Framework的新手。我將我的自定義config.json添加到我的項目根目錄中,並在文件main.js中訪問它。當我使用NPM開始執行的項目,但是當我使用電子製造商創建exe文件,我得到一個錯誤消息,此文件被成功加載: -電子:我的自定義config.json未加載

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

這裏main.js文件: -

// 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); 
    } 

})(); 

任何人遇到過這類問題併成功修復它?

回答

0

因爲您的應用程序已打包成asar存檔。要直接訪問您的文件,請配置extraFiles選項。

+0

你可以舉例說明如何使用extraFiles選項嗎? – Ronio

+0

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