Ich habe also das folgende Problem: Mein Projekt (dieses) hängt von zwei verschiedenen nw.js-Anwendungen ab, die mit web2exe gebündelt sind. Einer davon dient der Einrichtung und der andere hat keine grafische Benutzeroberfläche und sollte beim Start im Hintergrund ausgeführt werden. Die zweite Anwendung verlässt sich auch auf nw, um Vorgänge wie das Anzeigen von Taskleistensymbolen und das Ausblenden von Fenstern zu implementieren, für die andernfalls plattformspezifische Skripte (z. B. Batchdateien oder Shell-Skripte) erforderlich wären. Diese Lösung funktioniert einwandfrei, aber ich kann die ausführbare Datei nicht komprimieren, da das System auf einige normale Dateien in der Baumstruktur zugreifen muss. Selbst wenn dies möglich wäre, wären die größten Dateien die DLL- und Locale-Dateien. Die Bündelung zweier separater, unkomprimierter Webanwendungen mit zusätzlichen Knotenmodulen würde eine Dateigröße von etwa 800 MB ergeben, was für das, was ich mit meiner Anwendung erreichen möchte, völlig unrealistisch ist.
Ich denke darüber nach, ein anderes Framework wie Neutralinojs zu verwenden, aber das bedeutet, dass ich den Code neu schreiben muss und dabei einige neue spezifische Funktionen verliere. Ich bin mehr daran interessiert, neue Dateien zwischen meinen beiden Anwendungen zu teilen. Der zweite befindet sich in einem Unterordner des ersten. Die meisten NW-Dateien (außer der ausführbaren Datei selbst) sind identisch mit den Dateien im Stammverzeichnis von NW. Insbesondere durch die gemeinsame Nutzung der Ordner nw.dll und locales wurde die Größe um etwa 200 MB reduziert.
Ich habe nach Möglichkeiten gesucht, dies zu tun, aber bisher habe ich keine guten Methoden gefunden. Vielleicht gibt es hier eine Lösung, die mir fehlt. Eine andere Lösung, die ich mir vorstellen kann, besteht darin, eine kleinere Teilmenge zu verwenden oder nw mithilfe der nativen Webansicht neu zu implementieren. Vielleicht gibt es da draußen etwas Ähnliches, aber ich habe es noch nicht gefunden.
最简单的解决方案是将它们简单地组合到一个应用程序中。
package.json
中的 FelizJueves 的main
更改为 JS 文件而不是 HTML 文件。open
事件:https://nwjs.readthedocs.io/en/latest/References/App/#event-openargsopen
事件处理程序中,使用nw.Window.open()
显示窗口 (FelizJueves.html)。当有人尝试启动已经运行的应用程序时会触发此事件。因此,第一次启动只是启动背景检查器。第二次启动会弹出 UI 窗口。