Heim  >  Fragen und Antworten  >  Hauptteil

Teilen von nw.js-Binärdateien mit Anwendungen in Unterordnern: Ein Leitfaden für eine effiziente Verteilung

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.

P粉465287592P粉465287592276 Tage vor467

Antworte allen(1)Ich werde antworten

  • P粉163951336

    P粉1639513362024-01-18 00:16:15

    最简单的解决方案是将它们简单地组合到一个应用程序中。

    1. package.json 中的 FelizJueves 的 main 更改为 JS 文件而不是 HTML 文件。
    2. 让 JS 脚本成为您的后台进程。不要打开窗口,只需执行 FelizCheck 中当前执行的所有操作即可。
    3. 在该 JS 脚本中,侦听 open 事件:https://nwjs.readthedocs.io/en/latest/References/App/#event-openargs
    4. open 事件处理程序中,使用 nw.Window.open() 显示窗口 (FelizJueves.html)。当有人尝试启动已经运行的应用程序时会触发此事件。因此,第一次启动只是启动背景检查器。第二次启动会弹出 UI 窗口。

    Antwort
    0
  • StornierenAntwort