J'ai donc le problème suivant : mon projet (celui-ci) dépend de deux applications nw.js différentes regroupées à l'aide de web2exe. L’un est destiné à la configuration et l’autre est sans interface graphique et doit s’exécuter en arrière-plan au démarrage. La deuxième application s'appuie également sur nw pour implémenter des opérations telles que l'affichage des icônes de la barre d'état et le masquage des fenêtres qui autrement nécessiteraient des scripts spécifiques à la plate-forme (tels que des fichiers batch ou des scripts shell). Cette solution fonctionne bien, mais je ne peux pas compresser l'exécutable car le système doit accéder à certains fichiers normaux de l'arborescence. Même si c'était possible, les fichiers les plus volumineux seraient les fichiers dll et de paramètres régionaux. Le regroupement de deux applications Web distinctes non compressées avec des modules de nœuds supplémentaires entraînerait une taille de fichier d'environ 800 Mo, ce qui est totalement irréaliste pour ce que je souhaite réaliser avec mon application.
J'envisage d'utiliser un autre framework comme Neutralinojs, mais cela signifie devoir réécrire le code et perdre de nouvelles fonctionnalités spécifiques dans le processus. Je suis plus intéressé par le partage de nouveaux fichiers entre mes deux applications. Le second se trouve dans un sous-dossier du premier. La plupart des fichiers nw (à l'exception de l'exécutable lui-même) sont identiques aux fichiers du répertoire racine nw. En particulier, le partage des dossiers nw.dll et locales entre eux a réduit la taille d'environ 200 Mo.
J'ai cherché des moyens de le faire, mais jusqu'à présent, je n'ai trouvé aucune bonne méthode. Il y a peut-être une solution ici qui me manque. Une autre solution que je peux imaginer consiste à utiliser un sous-ensemble plus petit ou à réimplémenter nw en utilisant la vue Web native. Il existe peut-être quelque chose de similaire, mais je ne l'ai pas encore trouvé.
La solution la plus simple consiste simplement à les combiner en une seule application.
package.json
中的 FelizJueves 的main
en un fichier JS au lieu d'un fichier HTML.open
: https://nwjs.readthedocs.io/en/latest/References/App/#event-openargsopen
事件处理程序中,使用nw.Window.open()
, utiliseznw.Window.open()
pour afficher la fenêtre (FelizJueves.html). Cet événement est déclenché lorsque quelqu'un tente de démarrer une application déjà en cours d'exécution. Ainsi, le premier lancement démarre simplement le vérificateur d’arrière-plan. La fenêtre de l'interface utilisateur apparaîtra la deuxième fois que vous la démarrerez.