私は、ユーザにインタフェースを実行するだけでなく、ネットワークを介して接続された人々のためのファイルを提供するエクスプレスサーバを起動する必要がある電子アプリを持っています。child_process.forkは、パッケージ化された電子アプリ内でエクスプレスサーバを起動していません
電子メールサーバーとエクスプレスサーバーの両方を正常に起動しても問題ありませんが、サーバーのスラッシュなインターフェイスやサーバーの問題を避けるために、別のスレッドでサーバーを実行する必要があります。
そのため、私はnpm start
を使用すると正常に動作するサーバーを実行しようとしましたが、electron-builder
を使用してインストールしたプログラムはエクスプレスサーバーを起動しません。
私が使用してすぐに自分のサーバーを実行しようとした:
require('child_process').fork('app/server/mainServer.js')
を私はprocess.resourcesPath
、__dirname
でファイルを接頭辞、いくつかの変更を試してみましたが、でもハード生成されたファイルのパスを符号化します。渡すためのフォークオプションの変更cwd: __dirname
、detached: true
およびstdio: 'ignore'
;そして、さえもnpm start
で動作しますが、パッケージ化されていないだろうときに、process.execPath
でspawn
を使用してみました
注意を(それは私のアプリの新しいインスタンスを開く続け、あなたが笑を行った後明白なようだ):私はフォークしていない場合とサーバスクリプトをすぐに必要とします。require('server/mainServer.js')
を使用すると、パッケージ化されたアプリケーションで動作します。したがって、ほとんどの場合、問題は表現自体ではありません。
注2:私は他の問題を解決するためにasar: false
を持っています。したがって、これはここでは問題解決ではありません。
私は私の問題を示すために、小さなGitプロジェクトを置く:
https://github.com/victorivens05/electron-fork-error
すべてのヘルプは高く評価されます。私はこの問題を解決することができたサミュエル・アッタード(https://github.com/MarshallOfSound)から大きな助けを借りて