2017-07-19 4 views
0

私は次のような状況に陥っています。Angmark CLIアプリケーションがあります。これはnpm startで起動します。この操作を完了するまでに時間がかかる場合があります。開始後、アプリはlocalhost:3000で利用できます。 次に、URL localhost:3000からアプリを作成するElectronアプリ(nativefierモジュールで作成)があります。 問題はAngularアプリを起動すると同時に、Electronアプリをバッチファイルで起動するときに発生します。 NPMの開始がまだ完了していないため、明らかにElectronアプリにエラーが表示されます。一方、エンドユーザーはNPM開始のCMDウィンドウ(VBSスクリプトで非表示)を表示しないように、NPM開始とアプリケーションを順番に実行することはできません。 理想的には、電子アプリとnpmが同時に起動し、NPMスタートが実行されているときに電子アプリにロード画面が表示されることが理想的です。電子がnpmの終了を待つようにするには

これを達成する方法は文字通り考えられていません。

誰かが私に解決策を教えてもらえますか?

おかげ ファビオ

私が見つけた解決策は、2つの異なるウィンドウを有し、かつ、それらと一緒に遊んで、最初のものを隠し、後者の準備ができたときに、第2のいずれかが表示さで構成されてい...だから
+1

エンドユーザとnpmが開始しますか?あなたのアプリを電子でパッケージ化してエンドユーザーに提供するのはなぜですか? –

答えて

1

、表示したい想像ローカルホストの準備ができているのを待っている間にGoogle.com

const {app, BrowserWindow} = require('electron') 

let win 
let win2 
function createWindow() { 
    let win = new BrowserWindow({backgroundColor: '#2e2c29'}) 
    win = new BrowserWindow({width: 800, height: 600, show:false}) 
    win2 = new BrowserWindow({width: 800, height: 600}) 

    win.loadURL('http://localhost:3000') 
    win2.loadURL('http://www.google.com') 

    win.once('ready-to-show',() => {  
    win.show() 
    win2.hide() 
    win2.close() 
})  

    win.on('closed',() => { 

    win = null 
    }) 
} 

app.on('ready', createWindow) 

app.on('window-all-closed',() => { 

    if (process.platform !== 'darwin') { 
    app.quit() 
    } 
}) 
app.on('activate',() => { 

    if (win === null) { 
    createWindow() 
    } 
}) 
関連する問題