2019年6月8日 星期六

[Nodejs] node-adodb 使用Electron建置執行檔錯誤

在使用Electron + node-adodb時,在local端運作正常,但編譯過後會執行時出現錯誤提示:
Spawn C:\Windows\SysWOW64\cscript.exe error

此程式是透過調用Windows下內建cscript.exe來進行解析mdb檔案,而調用的過程中所給的參數如下:

const args = [Proxy.adodb, '//E:JScript', '//Nologo', '//U', '//B', command];

其中 Proxy.adodb = require.resolve('./adodb')

這個路徑是造成此error最主要的原因,在調用cscript.exe時,要傳遞js腳本作為參數,而compile後的 adodb.js 這個檔案,被封裝於asar內部,無法讓外部程式cscript.exe取得內容。我的解決方法是程式內部讀取adodb.js文件,再進行轉存一份script.js到公開目錄下,供外部程式讀取。

fork了一份專案進行修改: https://github.com/lclee3390/node-adodb

npm install:
npm install --save https://github.com/lclee3390/node-adodb.git

沒有留言:

張貼留言