2016-11-09 2397 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

难道我误解了这种方法的使用情况如何?我如何获得Electron程序入口点的路径? default_app.asar有什么作用?

感谢

回答

0

它返回当前应用程序目录:

app.getAppPath()
返回String - 当前应用程序目录。

docs

asar文件是一种简单的存档格式,只是将文件附加到对方。我不确定你是如何构建应用程序的,但是诸如electron-packagerelectron-builder这样的工具将文件输出到resources/app.asar存档并从那里运行文件。这意味着你当前的应用程序目录将是something/resources/app.asar。从那里你的主文件位于something/resources/app.asar/main.js

+1

事实是,我既不使用'electron-packager',也不使用'electron-builder'。 Electron是通过不包含“.asar”包的文件启动的,这就是为什么我不明白它为什么指向那里。文档说*当前应用程序目录*,在我看来这是非常模糊的。 – Marco