web-dev-qa-db-ja.com

NPM / Bower / Composer-違いは?

誰かがNPMBower、およびComposerの違いを説明できますか。

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

しかし、それぞれをいつ使用する必要がありますか?

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

92
panthro

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

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

composerは、PHPプロジェクトをターゲットとする依存関係マネージャーです。 symfony(または単純な古いphp)で何かをしている場合、これはおそらく行く方法です

要約すると:

  • ノードをやっていますか?あなたはnpmをします
  • pHPをやっていますか?作曲家を試す
  • フロントエンドJavaScriptバウアーを試してください

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

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

[更新、4年後]

  • bowerは非推奨であり、新しいプロジェクトには使用しないでください。大部分はノード依存関係管理に組み込まれています(彼らのWebサイトから:「Bowerは維持されていますが、フロントエンドプロジェクトにはYarnとWebpackまたはParcelを使用することをお勧めします」)。
  • yarnは、より良いnpm(いくつかのnpmの欠陥を修正する)として出てきました。これは、新しいデファクトスタンダードであるため、今すぐ使用すべきです。フロントエンドまたはノード開発を行っています。 npmと同じpackage.jsonを消費し、ほぼ完全に互換性があります。
  • この時点ではcomposerを使用しません(phpを使用しないため)
180
Mangled Deutz

NPM – nodejsのパッケージマネージャー。これは、世界最大のソフトウェアレジストリです。すべての大陸のオープンソース開発者は、npmを使用してパッケージを共有および借用します。パッケージは、依存関係とバージョンを追跡できるように構成されています。

Bower –フロントエンドWebプロジェクトのパッケージマネージャー。 Bowerは、HTML、CSS、JavaScript、フォント、さらには画像ファイルを含むコンポーネントを管理できます。 Bowerは、コードを連結または縮小したり、他の操作を行ったりすることはありません。必要なパッケージとその依存関係の正しいバージョンをインストールするだけです。また、npmパッケージです。したがって、npmを介してインストールできます。

  npm install bower

Composer – Composerは、PHPの依存関係管理のためのツールです。 YumまたはAptと同じ意味でのパッケージマネージャーではありません。パッケージまたはライブラリを扱いますが、プロジェクトごとに管理し、プロジェクト内のディレクトリにインストールします。デフォルトでは、グローバルには何もインストールされません。したがって、これは依存関係マネージャーです。

2つのパッケージマネージャーの物語:ComposerおよびNPM

バウアーとNPMの違い

アプリ は、これらのパッケージマネージャーを区別するのに役立ちます。アプリケーションが複数のパッケージマネージャーを同時に活用する方法を示します。

2