162

とをどのように比較しますnpmか?bowervolo

3 つすべてを使用して、UI プロジェクトの JavaScript 依存関係をインストールできます。npmよりノード固有であることを理解しています。

では、いつ何を使用するのでしょうか。

npmまだ遠くに立っていますが、bowerとの間にvolo線を引くことはできませんが、 と はまったく同じ問題を解決しているようです。npmbower-volo

4

5 に答える 5

74

バウアー

機能はほとんどありませんが、フロントエンド開発者の間では依然として非常に人気があります。すべてのフロントエンド パッケージがそれを使用しています。bower を npm にマージするイニシアチブもあります。

Bower はクライアント側に最適化されており、フラットな依存関係ツリーのみをサポートします。つまり、各ライブラリは 1 回だけ使用する必要があり(同じライブラリの異なるバージョンをクライアントに出荷するのは費用がかかるため)、依存関係の制約はユーザーが解決する必要があります。 .

bower レジストリ ( bower search <some keyword>) には、フロントエンドに関連するすべてのものを見つけることができます。私の意見では、それが他のパッケージ マネージャーと比較した場合の bower の最大の利点です。

ボロ

私はまだ何年も5分以上使用していません。それについてはわかりませんが、私が見る限り、Grunt ユーザーには非常になじみのあるビルド ツールが含まれています。

npm

はい、npm は Node Package Manager の略です。しかし、今日ではあらゆる用途に使用できます。人々はもはやノード環境でのみnpm install動作することを期待しているだけではありません。たとえば、Twitter Bootstrap 用の npm パッケージは多数あります。

Npm は、ネストされた依存関係ツリーを使用して、サーバー側での使用に最適化されています。各依存関係には、独自の依存関係を持つことができます。これにより、各依存関係が Underscore などの独自のバージョンを使用できるため、依存関係のバージョンの競合がなくなりました。ただし、今後のnpm バージョン 3 では、依存関係ツリーがフラット化されます

npm@3 を使用すると、node_modules ディレクトリがよりフラットになります。すべての依存関係とほとんどのサブ依存関係 (および (サブ) + 依存関係) は、トップ レベルで隣り合って配置されます。競合がある場合にのみ、モジュールはより深いレベルにインストールされます。これにより、Windows ユーザーにとって作業がずっと簡単になります。

npmを使用することで私が見たいくつかの利点:

  • 他のすべてのパッケージ マネージャー (コンポーネント、bower、volo、JSPM など) で使用されます。
  • ビルド スクリプトの使用を許可します。
  • npm ベースのパッケージをイントロスペクトするためのツールが多数用意されています

npm は JavaScript のパッケージ マネージャーです。

npmjs.com スクリーンショット


2013 年 2 月現在、私の意見は次のとおりです。もう気にしないでください。

npm

Node プロジェクトを使用している場合は、それに固執することをお勧めします。ブラウザーでも使用できるプロジェクトはほとんどありません...

バウアー

Bowerは今のポップガイです。彼らは彼らのフードの下にたくさんのプロジェクトを持っており、プロジェクトのメンテナーはバウアーレジストリでそれらを最新の状態に保つことを好みます...

彼が時々少しバギーなのが残念です。

ボロ

それ以来、volo を 5 分以上試していませんが、bower よりも柔軟性が高いように見えます。

volo のマイナス点は、彼らのプロジェクトが非常に時代遅れであることです。

于 2013-02-26T17:33:03.673 に答える
24

彼らは同じ問題を解決しているようですが、環境/世界が異なります。nodejs と volo の場合は NPM、ブラウザーの場合は bower。

真実は、NPM を使用してブラウザーの JavaScript と CSS を管理することもできるということです。あなたがそれをするのを妨げるものは何もありません。その意味で、同じ目的のために 2 つの異なるツールを管理しなければならないよりも、NPM を使用する方が自然に感じられます。

少なくともより人気のあるパッケージについては、bower にはより多くのパッケージが用意されているようです。しかし、すぐにjQuery も NPM で直接利用できるようになり、おそらく他のすべてのライブラリも同じ傾向に従うでしょう。

私の意見では、browserifywebmakeなど、ブラウザーでノード モジュールを使用するのに役立つツールがあるため、 bowervoloが実際に必要になることはありません。それらのレジストリ)。

VoloBowerもどちらもいいのですが、私から見れば、すでにNPMを使っているのであればそのまま使ったほうがいいかもしれません。

browserify や webmake を使用しなくても、NPM を使用してクライアントの依存関係を管理できることに注意してください。私が取り組んでいるほとんどのプロジェクトでは、npm モジュールをインストールした後、スクリプトを実行して、クライアント アプリがそれらを使用する場所にデプロイします。grunt を使用してそのファイルを他の js ファイルと連結することもあれば、Web アプリのテンプレート ファイルから直接参照することもあります。いずれにせよ、これは個人的な好みです。他の人は、Bower や Volo の方がワークフローに自然にフィットするため、使いやすいと感じるかもしれません。

于 2013-11-25T10:02:56.080 に答える
5

これは質問の範囲外であることは知っていますが、別の選択肢もあります。Jam JS - http://jamjs.org/興味深いことの 1 つは、jam で grunt 機能を備えていることです。

jam compile output.js

誰かがさらに別のパッケージマネージャーを作成して、それに名前を付ける必要があります: yapm :)

于 2014-02-10T05:59:45.043 に答える