2017-09-28 75 views
0

我使用的是webpack和electron,雖然我可以在本地引用我的腳本文件(app/scripts/scriptname.sh),但在生產部署時,出現錯誤:Can't open app/components/scripts/scriptname.sh如何在webpack部署中引用腳本文件?

我不清楚這是電子依賴性問題還是webpack問題。

我正在使用這些節點child_process爲:

var ls = spawn('sh', ['app/components/scripts/scriptname.sh']);

我不一定需要的腳本在自己的文件夾,這純粹是有幫助的。

+0

不要只提供當前目錄的完整路徑,嘗試提供基礎文件夾的絕對路徑 – Inian

+0

你能舉個例子嗎?我試過使用'。/ scripts /',這也沒有奏效。 – Rail24

+0

如果腳本完整路徑是從'/ home/foobar/foldername/app/components/scripts/scriptname.sh'例如,試着給出這個絕對路徑,而不僅僅是'app/components/scripts/scriptname.sh' – Inian

回答

0

您需要提供腳本的完整絕對路徑。要做到這一點,您可以使用電子

app.getAppPath()

Returns String - The current application directory.

app.getAppPath() API,以便您的代碼會是這樣的:

var scriptAbsolutePath = app.getAppPath() + '/app/components/scripts/scriptname.sh'; 
var ls = spawn('sh', [scriptAbsolutePath]); 

你也可以看看app.getPath(name) API,如果它滿足您的特定需求。

+0

我認爲這是正確的方向。我正在使用'const {app} = require('electron');'但是當我運行該應用程序時,我收到了'無法讀取屬性'getAppPath'的未定義錯誤。有任何想法嗎? – Rail24

+0

我不認爲導入命名模塊的大括號方式尚未支持。您可以執行以下操作。 const electron = require('electron'); const app = electron.app; – shashi

+0

我確實通過'require('electron')。remote.app'找到了應用程序,但它並不完全給我我期望的東西......當然有一些「包含」或「導入」我的方法在Electron應用程序中編譯腳本文件,而無需在編譯的應用程序之外引用它們? – Rail24

相關問題