Maison  >  Questions et réponses  >  le corps du texte

Partager des binaires nw.js avec des applications dans des sous-dossiers : un guide pour une distribution efficace

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é.

P粉465287592P粉465287592276 Il y a quelques jours468

répondre à tous(1)je répondrai

  • P粉163951336

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

    La solution la plus simple consiste simplement à les combiner en une seule application.

    1. Changez package.json 中的 FelizJueves 的 main en un fichier JS au lieu d'un fichier HTML.
    2. Faites du script JS votre processus en arrière-plan. N'ouvrez pas la fenêtre, faites simplement ce que vous faites actuellement dans FelizCheck.
    3. Dans ce script JS, écoutez l'événement open : https://nwjs.readthedocs.io/en/latest/References/App/#event-openargs
    4. Dans le gestionnaire d'événements open 事件处理程序中,使用 nw.Window.open(), utilisez nw.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.

    répondre
    0
  • Annulerrépondre