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