所以我遇到了以下問題:我的專案(這個)依賴於使用 web2exe 捆綁的兩個不同的 nw.js 應用程式。其中一個用於設置,另一個是無 GUI 的,應該在啟動時在後台運行。第二個應用程式也依賴 nw 來實現諸如顯示托盤圖示和隱藏視窗之類的操作,否則這些操作需要透過特定於平台的腳本(例如批次檔或 shell 腳本)來實現。 該解決方案工作正常,但由於系統需要存取樹中的一些普通文件,我無法壓縮可執行文件。即使可以,最大的檔案也是 dll 和語言環境檔案。將兩個獨立的、未壓縮的網路應用程式與附加節點模組捆綁在一起會導致檔案大小達到 800mb 左右,這對於我的應用程式想要實現的目標來說是完全不切實際的。
我正在考慮使用另一個框架,例如 Neutralinojs,但這意味著必須重寫程式碼並在過程中失去一些新的特定功能。我更感興趣的是在我的兩個應用程式之間共享新檔案。第二個位於第一個的子資料夾。大多數 nw 檔案(可執行檔本身除外)與 root nw 目錄中的檔案完全相同。特別是在它們之間共用 nw.dll 和 locales 資料夾,已經可以將大小減少約 200mb。
我一直在尋找方法來做到這一點,但到目前為止我還沒有找到任何好的方法。也許這裡有一個我缺少的解決方案。 我可以想像的另一個解決方案是使用某種較小的子集或使用本機 webview 重新實現 nw。也許那裡有類似的東西,但我還沒找到。
最簡單的解決方案是將它們簡單地組合到一個應用程式中。
package.json
中的 FelizJueves 的main
# 更改為 JS 檔案而不是 HTML 檔案。open
事件:https://nwjs.readthedocs.io/en/latest/References/App/#event-openargsopen
事件處理程序中,使用nw.Window.open()
顯示視窗 (FelizJueves.html)。當有人嘗試啟動已經運行的應用程式時會觸發此事件。因此,第一次啟動只是啟動背景檢查器。第二次啟動會彈出 UI 視窗。