Quelle est la différence fondamentale entre la tonnelle et du Musée ? Veux juste quelque chose pure et simple. J’ai vu certains de mes collègues utiliser bower et NGP indifféremment dans leurs projets. Une idée serait très utile.
Réponses
Trop de publicités?npm est le plus couramment utilisé pour la gestion de Node.js les modules, mais il travaille pour le front-end trop lorsqu'il est combiné avec Browserify et/ou $ npm dedupe
.
Bower est créé exclusivement pour le front-end et est optimisé pour fonctionner avec cela à l'esprit. La plus grande différence est que les mnp ne imbriquée de l'arbre des dépendances (taille lourde) alors que Bower implique un plat de l'arbre des dépendances (met le fardeau de la résolution des dépendances sur l'utilisateur).
Une étude de l'arbre des dépendances signifie que vos dépendances peut avoir ses propres dépendances qui peuvent avoir leur propre, et ainsi de suite. C'est vraiment génial sur le serveur où vous n'avez pas à s'inquiéter beaucoup d'espace et de temps de latence. Il vous permet de vous n'avez pas de soins sur les conflits de dépendance que l'ensemble de vos dépendances utiliser, par exemple, leur propre version d'un trait de Soulignement. De toute évidence, cela ne fonctionne pas sur le front-end. Imaginez un site pour télécharger des trois exemplaires de jQuery.
La raison pour le nombre de projets à la fois, c'est qu'ils utilisent Bower pour avant la fin de paquets et npm pour les outils de développement tels que Yeoman, Grunt, Gulp, JSHint, CoffeeScript, etc.
Tous les gestionnaires ont de nombreux inconvénients. Vous avez juste à choisir laquelle vous pouvez vivre avec.
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 sous les dépendances de modules différents). C'est UNE TRÈS BONNE CHOSE, car cela empêche votre côté client javascript devenir bouffie par avoir besoin d'inclure de multiples copies d'un composant à différentes versions.
MNP est mieux pour le nœud modules car il y a un module de système et vous travaillez localement. Bower est bon pour le navigateur, car actuellement il y a seulement la portée globale, et que vous voulez pas être très sélectif sur la version que vous travaillez avec.
Trouvé cette explication utile de http://ng-learn.org/2013/11/Bower-vs-npm/
D'une part, la ngp a été créé pour installer les modules utilisés dans un node.js de l'environnement, ou des outils de développement, construit à l'aide de node.js ces Karma, de la charpie, minifiers et ainsi de suite. npm pouvez installer des modules localement dans un projet ( par défaut dans node_modules ) ou globalement à être utilisé par plusieurs projets. Dans les grands projets de la façon de spécifier les dépendances est par la création d'un fichier de package appelé.json qui contient une liste de dépendances. Cette liste est reconnu par npm lorsque vous exécutez npm install, puis télécharge et installe pour vous.
D'autre part bower a été créée pour gérer votre frontend dépendances. Les bibliothèques comme jQuery, AngularJS, le trait de soulignement, etc. Semblable à la ngp c'est un fichier dans lequel vous pouvez spécifier une liste de dépendances appelé la charmille.json. Dans ce cas, votre frontend dépendances sont installés en exécutant bower install qui installe par défaut dans un dossier appelé bower_components.
Comme vous pouvez le voir, bien qu'ils accomplissent une tâche similaire, ils sont destinés à un ensemble très différent de bibliothèques.
Pour de nombreuses personnes qui travaillent avec node.js un des principaux avantages de la charmille est pour la gestion des dépendances qui ne sont pas javascript. Si elles travaillent avec les langues que les compiler en javascript, les mnp peuvent être utilisés pour gérer certains de leurs dépendances. cependant, pas toutes leurs dépendances vont être node.js les modules. Certains de ceux que les compiler en javascript peuvent avoir bizarre de la langue source spécifique modificateur qui rend les passant autour compilé en javascript un inconfort option lorsque les utilisateurs s'attendent code source.
Pas tout d'un mécanisme de prévention paquet doit être utilisateur face du javascript, mais pour les mnp paquets de bibliothèque, au moins une partie de celui-ci devrait être.