2016-11-09 11 views
3

私はbrowserifyを使って私のアプリケーションのすべての.jsファイルをdist/main.jsにマージしています。私package.jsonは、次のようになります。Electronのapp.getAppPath()はどこに向いていますか?

"main": "./dist/main.js", 
"scripts": { 
    "start": "electron ./dist/main.js", 
}, 
"bin": { 
    "electron": "./node_modules/.bin/electron" 
} 

と私は正しくnpm run startで自分のアプリケーションを実行することができます。 しかしmain.jsに、私はapp.getAppPath()を使用している場合、私は得る:

/home/myuser/projects/electronProject/node_modules/electron/dist/resources/default_app.asar

私はこれが

/home/myuser/projects/electronProject/dist/main.js

ことを期待する私は、このメソッドの使用方法を誤解していましたか?電子プログラムのエントリポイントのパスを取得するにはどうすればよいですか? default_app.asarの役割は何ですか?

おかげ

答えて

0

なぜあなたは__dirname(Node.jsの)またはprocess.resourcesPath(電子)を使用していませんか?

https://github.com/electron/electron/blob/master/docs/api/process.md https://nodejs.org/docs/latest/api/globals.html#globals_dirname

+0

実際、[electron-reload](https://github.com/yan-foto/electron-reload)がそれを使用しているという事実から問題が生じ、実際には私にとってはうまくいかないようです。私はgithub問題としてあなたの質問を著者に送付します。 – Marco

0

これは、現在のアプリケーションディレクトリを返します。

app.getAppPath()
戻り値String - 現在のアプリケーションディレクトリ。

docsより。

asarファイルは、ファイルを互いに単に追加する単純なアーカイブ形式です。どのようにアプリケーションを構築しているのかは分かりませんが、electron-packagerelectron-builderのようなツールでは、ファイルをresources/app.asarアーカイブに出力し、そこからファイルを実行します。これは、現在のアプリケーションディレクトリがsomething/resources/app.asarになることを意味します。そこからあなたのメインファイルはsomething/resources/app.asar/main.jsにあります。

+1

私は電子工学者ではなく電子工学者でもない。 Electronは '.asar'パッケージに含まれていないファイルで起動されるため、なぜそれがここを指しているのか分かりません。ドキュメントは、現在のアプリケーションディレクトリ*と言いますが、私の意見ではあまりにも曖昧です。 – Marco

関連する問題