Maison >interface Web >js tutoriel >Utiliser plusieurs versions d'un package dans un seul projet : pourquoi et comment

Utiliser plusieurs versions d'un package dans un seul projet : pourquoi et comment

DDD
DDDoriginal
2025-01-02 16:25:40769parcourir

Using Multiple Versions of a Package in a Single Project: Why and How

Le développement de logiciels modernes nécessite souvent des approches innovantes pour gérer les dépendances, en particulier dans les projets JavaScript à grande échelle. Une de ces approches consiste à utiliser plusieurs versions du même package dans un seul projet. Cette méthode, bien qu'apparemment non conventionnelle, répond à divers besoins tels que garantir la prise en charge des systèmes existants, effectuer des basculements de fonctionnalités ou faciliter les tests A/B.

Dans cet article de blog, nous examinerons les raisons qui sous-tendent l'utilisation de plusieurs versions d'un package, en mettant l'accent sur le basculement des fonctionnalités et les tests A/B, et explorerons comment Bit peut simplifier ce processus complexe.

Pourquoi utiliser plusieurs versions du même package ?

  1. Code hérité et mises à jour progressives

Les anciens systèmes s'appuient souvent sur d'anciennes versions de dépendances. L'introduction d'une nouvelle version peut entraîner des incompatibilités. L'utilisation de plusieurs versions garantit que les nouvelles fonctionnalités peuvent exploiter les bibliothèques mises à jour tandis que les anciens systèmes restent stables.

  1. Basculement des fonctionnalités

Le basculement des fonctionnalités permet aux développeurs de contrôler la disponibilité de fonctionnalités spécifiques sans modifier la base de code. Cette approche est particulièrement utile lors de la publication de fonctionnalités de manière incrémentielle ou lors du test de leur impact.

  • Release Toggles : retarde la sortie publique d'une fonctionnalité tout en garantissant que son code est fusionné et testé au sein de la branche principale.

  • Bascules d'expérimentation : (Test A/B) : permet de tester les fonctionnalités avec différents segments d'utilisateurs pour déterminer la mise en œuvre optimale.

  • Ops Toggles : offrez aux équipes opérationnelles la possibilité d'activer ou de désactiver des fonctionnalités sans déployer de nouveau code.

Le basculement de fonctionnalités peut nécessiter plusieurs versions d'un package ou d'un composant lorsque le basculement implique des modifications importantes, telles que la mise à niveau d'une bibliothèque ou la modification d'un composant principal.

Balisage des composants Bit avec les versions préliminaires

Bit propose la commande bit snap pour versionner votre composant avec un hachage au lieu d'une version sémantique, pour indiquer que la version n'est pas prête à être publiée (la commande exécute également un pipeline de construction légèrement différent, en conséquence).

Par exemple :

'bit snap' => package-name@5475049d02fafa0eaf6885a06d36e42e0ffdc4a3
'bit tag' => package-name@1.2.3 

Cependant, avoir un hachage comme version du composant ne donne aucune information sur son objectif, sa version parent, ou si cette "branche" de l'historique du composant a des itérations supplémentaires.

Un bit snap est utile comme analogie Bit pour git commit mais pas pour les versions expérimentales qui doivent être intégrées à la production.

Pour fournir plus d'informations, il est recommandé d'utiliser l'option préliminaire. Par exemple :

'bit snap' => package-name@5475049d02fafa0eaf6885a06d36e42e0ffdc4a3
'bit tag' => package-name@1.2.3 

Gestion de plusieurs versions d'un package

Lors de l'utilisation de plusieurs versions d'un package/composant Bit, l'alias de dépendance est la clé. Cette approche permet aux équipes de conserver plusieurs versions de packages au sein du même projet.

bit tag forms/sign-in -m "add SSO option" --increment prerelease --prerelease-id beta

Les noms d'alias permettent de différencier facilement les versions :

{
 "dependencies": {
  "@my-org/my-scope.forms.sign-in": "0.0.1",
  "@my-org/my-scope.forms.sign-in-sso": "npm:@my-org/my-scope.forms/sign-in@0.0.2-beta.0",
}

Apprendre encore plus

  • Documentation des bits
  • Plateforme de bits

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn