web-dev-qa-db-fra.com

NPM / Bower / Composer - des différences?

Quelqu'un peut-il m'expliquer la différence entre NPM, Bower et Composer.

Ils sont tous gestionnaires de paquets - correct?

Mais quand faut-il utiliser chacun?

En outre, chaque fichier semble avoir un fichier JSON qui l'accompagne. Est-ce que cela stocke tous les paquetages dont vous avez besoin pour pouvoir les installer par ligne de commande? Pourquoi avez-vous besoin de ce fichier?

92
panthro

npm est le gestionnaire de paquets de nodejs. Il cible donc les environnements nodejs, ce qui signifie généralement des projets nodejs côté serveur ou des projets en ligne de commande (bower lui-même est un package npm). Si vous voulez faire quelque chose avec nodejs, vous allez utiliser npm.

bower est un gestionnaire de paquets qui vise les projets Web (front-end). Vous avez besoin de npm et de nodejs pour installer Bower et l’exécuter, bien que les packages bower ne soient pas conçus spécifiquement pour nodejs, mais plutôt pour l’environnement "browser".

composer est un gestionnaire de dépendances qui cible les projets php. Si vous faites quelque chose avec symfony (ou tout simplement vieux php), c'est probablement la voie à suivre

En résumé:

  • faire noeud? tu fais npm
  • faire php? essayez compositeur
  • javascript front-end? essayez bower

Et oui, les fichiers "json" décrivent les informations de base sur les packages et leurs dépendances. Et oui, ils sont nécessaires.

Maintenant, qu'en est-il des fichiers README? :-)

[mise à jour, quatre ans plus tard]

  • bower est obsolète et ne devrait plus être utilisé pour de nouveaux projets. Dans une large mesure, il a été intégré à la gestion de la dépendance des nœuds (sur leur site Web: "Bien que Bower soit maintenu, nous vous recommandons d'utiliser Yarn et Webpack ou Parcel pour les projets front-end").
  • yarn est sorti du bois en tant que meilleur npm (corrigeant plusieurs défauts de npm), et c’est vraiment ce que vous devriez utiliser maintenant, car c’est le nouveau norme facto si vous effectuez un développement frontal ou nodal. Il consomme le même package.json comme npm, et est presque entièrement compatible avec ce dernier.
  • Je ne voudrais pas utiliser composer à ce stade (parce que je ne voudrais pas utiliser php), bien qu'il semble être toujours vivant et populaire
180
Mangled Deutz

NPM - Gestionnaire de paquets pour nodejs. C'est le plus grand registre de logiciels au monde. Les développeurs open source de tous les continents utilisent npm pour partager et emprunter des packages. Les packages sont structurés pour vous permettre de garder une trace des dépendances et des versions.

Bower - Gestionnaire de packages pour les projets Web frontaux. Bower peut gérer des composants contenant du HTML, du CSS, du JavaScript, des polices ou même des fichiers image. Bower ne concatène pas, ne minimise pas le code et ne fait rien d’autre. Il installe simplement les bonnes versions des packages dont vous avez besoin et de leurs dépendances. C'est aussi un paquet npm. Donc, il peut être installé via npm.

  npm install bower

Compositeur - Composer est un outil de gestion des dépendances en PHP. Ce n'est pas un gestionnaire de paquets dans le même sens que Yum ou Il s’agit de paquets ou de bibliothèques, mais il les gère projet par projet en les installant dans un répertoire du projet. Par défaut, il n’installe rien dans le monde. Il s’agit donc d’un gestionnaire de dépendances.

ne histoire de deux gestionnaires de paquets: Composer et NPM

Différence entre Bower et NPM

Voici ne application qui aidera à différencier ces gestionnaires de paquets. Il montre comment une application peut exploiter plusieurs gestionnaires de packages simultanément.

2
Abdul Alim Shakir