Pourquoi devrais-je utiliser Bower? [fermé]

32

Je peux pleinement apprécier les avantages d'un gestionnaire de paquets tel que Python pip, Node npmou Ruby Gems, car ils font bien plus que l'ajout de fichiers à votre chemin d'applications.

Peut-être que je manque le point, ou je suis obtus, mais voici les points négatifs que je peux voir:

  • Étape distincte lors de la construction d'un projet
  • Dépendance séparée à installer via un autre gestionnaire de paquets (yo dawg)
  • Plus de fouillis dans les projets racine avec bower.jsonet / ou.bowerrc
  • Utilisation du registre à jour, correct et disponible
  • Certaines importations / références à des éléments tels que des images ne fonctionneront pas
  • Chevauchement énorme avec npm, et on ne sait souvent pas quelle ressource utiliser, quand

Les points positifs que je peux voir sont les suivants:

  • Je n'ai pas à télécharger les dépendances manuellement
  • Installez éventuellement des packages dans le cadre d'un échafaudage en fonction des invites de l'utilisateur ou autres

J'aimerais vraiment connaître les avantages dont je ne suis pas au courant et je dois dire que je n'essaie pas d'être provocateur, je veux vraiment savoir.

Wil
la source
En fin de compte, tous les gestionnaires de paquets que vous mentionnez impliquent des dépendances de téléchargement et partagent certains des «négatifs» que vous avez énumérés pour Bower. De même, Bower partage certains des avantages de npm, pip et rubygems: par exemple, Bower facilite la mise à jour de vos dépendances vers la version la plus récente (il s'agit d'une version importante) et réduit considérablement l'encombrement dans votre dépôt git, car vous pas besoin de code de dépendance d'enregistrement.
sffc
6
Il est dommage que cette question ait été classée "essentiellement basée sur l'opinion". Le PO demande l'avis d'un expert. "Comment cela m'aide-t-il dans le processus de développement?"
Dave Kanter
Il semble que la tendance est que vous ne devriez pas utiliser bower, il n’a aucun outil ni avantage sur l’utilisation de npm combiné à Browserify. Il semble que l'industrie ait parlé et que le nombre de modules pour bower soit en baisse et que npm et Browserify deviennent la norme: quora.com/Why-use-Bower-when-there-is-npm
Brian Ogden

Réponses:

12

Du README :

Bower est un gestionnaire de paquets pour le Web. Il offre une solution générique et non optimisée au problème de la gestion des packages front-end, tout en exposant le modèle de dépendance des packages via une API pouvant être consommée par une pile de génération plus consultée. Il n'y a pas de dépendances à l'échelle du système, aucune dépendance n'est partagée entre différentes applications et l'arbre de dépendance est à plat.

Bower fonctionne sur Git et est indépendant du paquet. Un composant empaqueté peut être constitué de tout type d’actif et utiliser n’importe quel type de transport (par exemple, AMD, CommonJS, etc.).

Bower présente de nombreux avantages par rapport aux autres gestionnaires de dépendance. Je suis sûr qu'il y en a d'autres, mais les avantages que j'ai remarqués jusqu'à présent incluent:

  • Simplifier ce qu'on pourrait appeler la gestion déclarative des dépendances; c'est-à-dire que vous déclarez vos dépendances dans bower.json afin que d'autres choses puissent les déterminer facilement
  • Pas besoin de valider des dépendances pour le contrôle de version
  • Le versionnage sémantique permet de définir une plage de versions acceptables pour une dépendance, ce qui facilite la mise à jour vers des versions plus récentes dans la plage définie.
  • Pas besoin de localiser différentes versions (debug, minified, etc.)
  • Simple à utiliser différentes versions d'une dépendance pour dev vs prod
  • Vous pouvez distribuer le fichier bower.json et tout le monde peut se familiariser avec une simple "installation bower"
Mike Partridge
la source
2
J'aimerais vraiment avoir écrit la question d'une manière moins provocante. Vraiment, je suppose que l’avantage crucial que j’ai manqué est d’utiliser l’API dans le cadre d’un processus de construction / échafaudage. J'aimerais voir l'utiliser quelque part dans la nature.
Wil
J'ai pris conscience de Bower lorsque j'ai démarré une application Web angulaire à l'aide du générateur angulaire de Yeoman. Essayer cela pourrait vous donner une idée de la façon dont il peut être utilisé.
Mike Partridge
J’avais déjà utilisé Yeoman et Grunt Init auparavant, et c’est peut-être parce que mes besoins ont toujours signifié que les composants d’avant ne se dévieraient jamais - ils seraient toujours angulaires, jQuery, moka, etc., mais je peux voir que si un utilisateur veut permutez un cadre de test à partir d’une liste de choix d’invites de démarrage, cela serait utile. Je pense que le principal avantage qui a du sens est les options de bootstrap et les modificateurs. Pensez-vous que c'est juste?
Wil
2
Aussi la portabilité. Vous pouvez distribuer le fichier bower.json et tout le monde peut se mettre à niveau avec une simple "installation bower".
Dave Kanter
1
s/bower/npm/iet cette réponse est toujours vraie à 100%.
Qix