NPM / Bower / Composer-違いは?


102

誰かが私に違いを説明することができNPMBowerそしてComposer

それらはすべてパッケージマネージャーです-正しいですか?

しかし、それぞれをいつ使用すべきですか?

また、それぞれにjsonファイルが付属しているようですが、これには必要なすべてのパッケージが保存されているため、cmd行でインストールできますか?なぜこのファイルが必要なのですか?

回答:


192

npmnodejsパッケージマネージャーです。したがって、通常はサーバー側のnodejsプロジェクトまたはコマンドラインプロジェクトを意味するnodejs環境を対象とします(bower自体はnpmパッケージです)。nodejsで何かを行う場合は、npmを使用します。

bower(フロントエンド)Webプロジェクトを目的としたパッケージマネージャーです。Bowerをインストールして実行するには、npmとnodejsが必要ですが、Bowerパッケージは、nodejs専用ではなく、「ブラウザー」環境用です。

composerPHPプロジェクトを対象とする依存関係マネージャーです。symfony(またはプレーンな古いphp)で何かをしている場合、これはおそらく行く方法です

要約すると:

  • ノードをやっている?あなたはnpmをします
  • PHPをやっていますか?作曲家を試してください
  • フロントエンドのJavaScript?お辞儀をしよう

はい、「json」ファイルは基本的なパッケージ情報と依存関係を記述します。そして、はい、それらは必要です。

さて、READMEはどうですか?:-)

[更新、4年後]

  • bowerは非推奨であり、新しいプロジェクトでは使用しないでください。大部分は、ノードの依存関係の管理に組み込まれています(Webサイトから:「Bowerはメンテナンスされていますが、フロントエンドプロジェクトにはYarnとWebpackまたはParcelを使用することをお勧めします」)。
  • yarnは、npmいくつかのnpm欠陥を修正して、より良いものとして木材から出てきました。これは、フロントエンドまたはノード開発を行う場合の新しい事実上の標準であるため、これを実際に使用する必要があります。package.jsonnpm と同じように消費し、ほぼ完全に互換性があります。
  • 私はcomposerこの時点では使用しません(私はを使用しないためphp)、まだ生きていて人気があるようです

6
php + frontentアプリケーションはどうですか?最良の選択肢は何ですか?
sompylasar 2014年

14
線を引く場所によって異なります。あなたのMVCはjsですか(そしてあなたのphpはWSに縮小されていますか)?その後、おそらく亭を使用します。MVCはphp(symfonyなど)であり、サーバーサイドビューにたくさんのjsがフックされていますか?次に、作曲家はおそらくあなたのベストピックです。
マングルドドイツ2014

21
最も厄介で生産性の低い部分は、一部のユーザーがbowerのみを使用するライブラリーで作業している場合です。一部はcomposerのみを使用し、他はnpmのみを使用します。単一のコマンドでこれらすべてのパッケージマネージャーを処理する単一のパッケージマネージャーを見つけるとよいでしょう。それはインセプションと呼ばれるべきです。
エンジェルS.モレノ

29
@ AngelS.Morenoは正しいと思います。あまりにも多くの4を作ることができます。:)
Eric

1
@ AngelS.Moreno正解です。インストーラーと依存関係マネージャーに立ち寄るだけではありません。すべてが多すぎます。同じことを行うJSライブラリが多すぎる、PHPフレームワークが多すぎるなど。人々が1つのことに協力して取り組むことができれば、それは私たちの多くの人生を変えるでしょう。
JGエスティオット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.