160 votes

Gestion des dépendances JavaScript : charmille de NGP vs vs volo ?

Comment comparez-vous , et `` ?

Chacun des trois peuvent être utilisés pour installer les dépendances de javascript pour un projet d’interface utilisateur. Je comprends `` est plus nœud spécifique.

Alors, quand utiliser quoi ?

est encore lointaine, mais et semblent être résoudre exactement le même problème, même si je ne suis pas en mesure de tracer une ligne entre et `` .

104voto

strangeloops Points 882

Une description qui décrit le mieux la différence entre la NGP et bower est : npm gère JavaScript modules appelés paquets et Bower gère les composants frontaux (c.-à-d., html, css et JavaScript) appelés composants. NGP est également utilisé pour installer bower. Voici un large article sur NGP et bower (ne couvre pas les volo) va dans beaucoup de détails.

72voto

gustavohenke Points 9454

npm

Il est préférable de s'en tenir avec lui quand vous êtes avec un Nœud de projet, il y a très peu de projets sont à la disposition des navigateurs...

bower

Bower est le pop mec de droite maintenant. Ils ont beaucoup de projets sous leur capot, et le projet les responsables comme pour les garder à jour dans la charmille de la base de registre...

C'est une honte qu'il est parfois un peu buggé.

volo

Je n'ai pas essayé volo pendant plus de 5 minutes depuis si, mais de ce que j'ai pu voir, il semble être plus souple que la charmille.

Un point négatif pour volo, c'est que leurs projets sont très anciens.


Eh bien, c'est mon avis.. chaque gestionnaire de package ici pourrait mieux convenir à vos besoins que l'on rentre pour moi.

24voto

roy riojas Points 519

Ils semblent être de résoudre le même problème mais pour les différents environnements/mondes. NPM pour nodejs et volo, bower pour le navigateur.

La vérité est que vous pouvez utiliser NPM également de gérer des fichiers javascript et css pour le navigateur. Il n'y a rien de vous empêche de le faire. En ce sens, à l'aide de la NGP se sent plus naturel pour moi que d'avoir à gérer deux outils différents pour le même but.

Il semble que bower ont plus de paquets disponibles, au moins pour les plus populaires. Mais bientôt, jQuery seront également disponibles dans MNP directement et probablement tous les autres bibliothèques suivent la même tendance.

À mon avis, car il y a des outils comme browserify et webmake là-bas, qui aident à utiliser un nœud de modules dans le navigateur, il n'est plus un besoin réel pour la charmille ou volo, à moins qu'ils offrent quelque chose d'autre pour vous (un module particulier qui n'existe que dans leurs registres).

Les deux Volo et Bower sont bon aussi, mais de mon point de vue, si vous êtes déjà à l'aide de la NGP, il peut être préférable de s'en tenir à elle.

Veuillez noter que vous pouvez utiliser NPM pour la gestion de votre client dépendances, même sans l'aide de browserify ou webmake. Dans la plupart des projets que j'ai en cours de travail, après que le mnp modules sont installés, je lance un script pour les déployer à l'emplacement où mon client app utilise. Parfois je utiliser grunt pour concaténer ce fichier avec d'autres fichiers js et parfois j'ai l'référence directement à partir des fichiers de modèle de mes applications web. En tout cas, c'est une question de préférence personnelle. D'autres pourraient trouver Bower ou Volo plus facile à utiliser car ils correspondent plus naturel dans leurs flux de travail.

15voto

wheresrhys Points 6087

Bower gros avantage sur la NGP, c'est que sa gestion de la dépendance applique à l'aide d'une version unique d'un composant (alors que les MNP fonctionne en ayant différentes copies/versions subdependencies de différents modules). C'est UNE TRÈS BONNE CHOSE , car il empêche votre côté client javascript devenir bouffie par avoir besoin d'inclure de multiples copies d'un composant à différentes versions. Y compris les copies multiples d'un module est central à la façon des MNP de gestion de la dépendance des œuvres, et NPM est donc totalement inadapté à côté client de gestion de paquets.

Une conséquence de ce qui précède est que bower mainteneurs de paquets et les consommateurs à être plus soucieux de maintenir leur dépendance des numéros de version pour éviter les conflits, mais c'est le prix à payer. Et je trouve MNP modules sont souvent peu soignée dans leur émission de majeur, mineur et patch libère ainsi de MNP de gestion de la dépendance n'est pas exactement un lit de roses.

5voto

Bruce Lim Points 131

Je sais que ce n’est pas dans le cadre de la question, mais il y a aussi une autre alternative. Confiture de JS - http://jamjs.org/ une chose intéressante est qu’il a des capacités de grognement dans la confiture :

Quelqu'un doit faire encore un autre package manager et nommez-la : yapm  :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X