2017-11-20 3 views
0

Ich habe einige Beiträge über das Thema gesehen, ja, es lief sehr gut, wenn ich den Befehl in der Konsole Konsole.Aber es konnte nicht funktionieren, wenn ich die Elektronen App verpackt (Elektron-Builder) und Beim Starten der App trat ein Problem auf: Es wurde ein neuer Prozess erstellt, daher gab es viele Prozesse im Task-Manager, die wir sehen konnten und die CPU-Auslastung betrug 100%. Ich weiß nicht, wie viel das passiert ist, könntest du mir helfen? Bitte! Hier ist mein Testcode:Spawn einen Prozess in Elektron

master.js (main):

var childProcess = require('child_process'); 
let createProc =() => { 
    let sp = childProcess.spawn(process.execPath, ['./go.js'], {stdio:'ignore'}); 
    sp.unref(); 
    sp.on('error', (err) => { 
    console.log('failed to start process',err); 
    }); 
    sp.on('exit',(code, signal) => { 
    console.log(`child process exited with code ${code}`); 
    createProc(); 
    }); 
} 

createProc(); 

go.js:

const {app, BrowserWindow} = require('electron'); 
let basicWindowParams = { 
    show: true, 
    autoHideMenuBar:true 
}; 
console.log(process.execPath) 
console.log(process.execArgv) 
console.log(process.pid) 
app.on('ready',() => { 
    let win = new BrowserWindow(basicWindowParams); 
    win.loadURL('http://www.reddit.com/'); 
    win.on('did-finish-load',() => { 
    win.show(); 
    }); 
}); 

OS: Windows 10

Electron : 1.8.1

Update: Ich habe eine Repo zur Demonstration erstellt: https://github.com/xzycn/el_test

+0

Kann mir jemand helfen? :( –

Antwort

0

Dies könnte, weil Sie child_process.spawn verwenden Sie daher den Prozess laichen. Verwenden Sie stattdessen child_process.exec.

+0

Hallo, ich habe mit exec getestet. Ich habe fast meine Ziele erreicht.Aber neue Fragen kommen zu mir :(. –

+0

Was sind diese neuen Fragen? – y0hami

+0

Die neuen Fragen wie: Sie können nicht lesen, Informationen im Paket. json durch app.getVersion, app.getName, .etc.Aber dieses Problem wurde behoben, nachdem ich die Struktur meiner App geändert habe.Ich habe alle mit go.js verbundenen Codes in ein Unterverzeichnis mit dem Namen * app * verschoben neues package.json und Hauptfeld mit 'go.js' anstelle von 'master.js' :) –

Verwandte Themen