Passer à la navigation

Mises à jour Delta

Le système d'actualisation en direct de Capgo peut délivrer des mises à jour plus rapidement et de manière plus efficace en envoyant uniquement les fichiers modifiés, plutôt que le bundle JS entier.

Cela est particulièrement bénéfique pour les utilisateurs sur des connexions réseau plus lentes ou facturées, car cela minimise la quantité de données qui doivent être téléchargées.

Un deuxième avantage est lorsque l'application possède de grands éléments qui changent rarement, comme des images ou des vidéos, comparés aux fichiers JS zippés, ils seront téléchargés qu'une seule fois.

Comment les mises à jour Delta (Manifest) fonctionnent

Section intitulée « Comment les mises à jour Delta (Manifest) fonctionnent »

Mises à jour de manifeste Delta dans Capgo sont gérées par le plugin Capgo installé dans votre application. Lorsque vous téléchargez une nouvelle version de votre application en utilisant le --delta drapeau, Capgo effectue les opérations suivantes :

  1. Chaque fichier dans votre build est téléchargé individuellement
  2. Des sommes de contrôle sont générées pour chaque fichier
  3. Un nouveau manifeste json est créé, listant tous les fichiers et leurs sommes de contrôle
  4. Ce manifeste est téléchargé vers la base de données Capgo

Lorsqu'un appareil exécutant votre application vérifie une mise à jour, le plugin Capgo reçoit le nouveau manifeste du serveur. Il compare ce manifeste à celui qu'il a actuellement, identifiant les fichiers qui ont changé en fonction des sommes de contrôle et des chemins de fichiers.

Le plugin télécharge ensuite uniquement les fichiers modifiés, plutôt que le bundle JS complet. Il reconstitue la nouvelle version de l'application en combinant ces fichiers téléchargés avec les fichiers inchangés qu'il a déjà.

Pour activer les mises à jour Delta (manifest) pour votre application Capgo, utilisez simplement le --delta flag lors de l'upload d'une nouvelle version :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload --delta

Si autoUpdate est défini sur un mode d'application instantané ("atInstall", "onLaunch", ou "always") dans votre capacitor.config, le CLI le détecte. Dans les environnements non interactifs, il envoie automatiquement les mises à jour Delta (manifest), et dans les environnements interactifs, il vous demande de confirmer avant l'upload. La configuration Legacy est toujours détectée. Utilisez directUpdate pour forcer un upload complet du bundle. --no-delta protectedTokens

  • Fichiers vides : Les CLI journaux Ignoring empty file... et exclut les fichiers de taille zéro du manifeste Delta. Il ne fait pas fail l'envoi, donc l'ajout d'un fichier vide peut modifier le paquet résultant sans arrêter votre déploiement. N'incluez pas les fichiers de taille zéro dans les chemins de paquet Delta.
  • Espaces dans les chemins : Les téléchargements Delta échouent avant d'envoyer les fichiers lorsque un chemin de paquet contient un espace. Renommez le fichier ou le répertoire pour supprimer les espaces avant de télécharger une mise à jour Delta.

Si vous souhaitez vous assurer que toutes les mises à jour sont des actualisations Delta (manifeste) et empêcher tout téléchargement de paquet complet par erreur, vous pouvez utiliser la --delta-only drapeau :

Fenêtre de terminal
npx @capgo/cli@latest bundle upload --delta-only

Lorsque --delta-only est utilisé, Capgo ne téléchargera que les fichiers individuels et générera un manifeste. Toute appareil qui ne prend pas en charge les mises à jour Delta (manifeste) ne pourra pas télécharger la mise à jour.

Vous pourriez vouloir utiliser --delta-only si :

  • Vous voulez toujours utiliser les mises à jour Delta (manifeste) et ne voulez jamais permettre les téléchargements de bundles complets
  • Vous configurez une pipeline CI/CD et vous voulez vous assurer que toutes les téléchargements automatisés sont Delta (manifeste)
  • Votre application est grande et la bande passante est contrainte, vous devez donc minimiser les tailles de téléchargement/telechargement

Si vous avez besoin de faire un téléchargement de bundle complet tandis que --delta-only est défini, vous pouvez simplement exécuter la commande de téléchargement sans --delta-only . Cela surpassera la mise en œuvre de la mise à jour pour cette seule opération, vous permettant de pousser un bundle complet lorsque nécessaire.

Si les mises à jour Delta (manifest) ne semblent pas fonctionner (c'est-à-dire que les appareils téléchargent toujours le bundle JS complet même pour de petites modifications), vérifiez que :

  • Vous utilisez la --delta flag à chaque fois que vous publiez une nouvelle version
  • Si vous utilisez --delta-only, assurez-vous d'avoir ajouté la --delta flag
  • Votre appareil exécute la dernière version du plugin Capgo
  • Votre appareil dispose d'une connexion réseau stable et peut atteindre les serveurs Capgo

Vous pouvez également utiliser l'application web Capgo pour vérifier les détails de votre dernière mise à jour :

  1. Allez à l' application web
  2. Cliquez sur votre application
  3. Cliquez sur le nombre de bundles de la barre de statistiques.
  4. Sélectionnez le dernier bundle
  5. Vérifiez le Partial champ type de bundle

Si vous continuez à rencontrer des difficultés, veuillez contacter le support Capgo pour obtenir une aide supplémentaire. Ils peuvent vérifier les journaux du serveur pour confirmer que vos téléchargements Delta (manifest) sont traités correctement et que les appareils reçoivent les mises à jour de manifeste.

C'est tout ! La --delta drapeau indique à Capgo de procéder aux téléchargements de fichiers individuels et à la génération de manifeste nécessaires aux mises à jour Delta (manifeste).

Notez que vous devez utiliser --delta chaque fois que vous téléchargez une nouvelle version que vous souhaitez être livrée sous forme de mise à jour Delta (manifeste). Si vous omettez la drapeau, Capgo téléchargera le tout le bundle JS en tant que fichier unique, et les appareils téléchargeront l'ensemble du bundle même si seulement une petite partie a changé.

Si vous utilisez les mises à jour Delta pour planifier la livraison d'actualisations en direct, connectez-les à Capgo Mises à jour en direct pour le flux de travail du produit dans Capgo Mises à jour en direct, Aperçu pour les détails d'implémentation dans Aperçu, Caractéristiques pour les détails d'implémentation dans Caractéristiques, Comportement de mise à jour pour les détails d'implémentation dans Comportement de mise à jour, et Mise à jour des types Pour les détails d'implémentation dans Mise à jour des types.