2013-04-19 6 views
15

私の質問に先立って、私はMavenを使ってビルドするJavaのバックエンド開発者の視点から来ています。私は最近開発したサーバーサイドのノードプロジェクトでテストを行ってきましたが、現在はフロントエンドのJavaScriptクライアントのテストを設定しています。私はフロントエンドの開発にあまり精通していませんが、これが本当に私の最初の進出です。バワーとNPMはどのように結びついていますか?

Eclipse IDE、Mavenビルドプロセス、Mochaテストフレームワーク、Chaiアサーションフレームワーク、Nock HTTP Mockingフレームワーク、 Sinonの嘲笑/スパイ/スタブフレームワーク、Rewire依存性注入フレームワーク。それはすべてうまくいくはずです。それがNodeプロジェクト用のスタックなので、私はフロントエンドの設定を可能な限り同じにしておきたいと思います。

これは私の知識が崩壊するところです。 NodeプロジェクトとフロントエンドJavaScriptプロジェクトの依存関係管理の違いを理解できないようです。なぜMavenビルドに統合されたNPMを依存関係の管理とインストールを処理するために使用し続けることができないのか分かりません。

多くの人がBowerを擁護していますが、そのページとドキュメントを見ても、NPMが満たしているニッチはまだ見えません。私は、ブラウザの依存関係の管理が行われる限り、NPMの拒絶反応を忠告しています。主な理由は、NPMがフロントサイド・スペースではなく、サーバー・サイドのノード・プロジェクト用に設計されていることです。しかし、誰が気に?その初期設計の意図にかかわらず、もし私がそれが必要なのであれば、欠点はどこですか?

私が完全な初心者のようにこの「質問」に近づいてください。私は、このプロセスと研究を経て、私は物事のフロントエンド側に関して非常に多くの知識が不足していると認識しました。それが言われているように、あなたの答えでできるだけ具体的で徹底的にしてください。私は、私がいる空間の絵を描くのを助けるために、必要に応じて、プロジェクト構成などを共有することができれば幸いです。

答えて

15

バワーとNPM doは違って動作します。

NPMは非常に強力で、優れています。しかし、そこには多くのクライアントサイドパッケージがありません。ノードでも動作するため、ほとんどがそこにあります。 (例:Underscore.JSとJADEテンプレートエンジン)

だからこそ、のBowerがあり、これにはクライアント側パッケージの大半が含まれています。多くのjQueryプラグイン、テンプレートエンジン、CSSフレームワークなどがあります。NPMでそのようなパッケージを見つけることは期待しないでください。

両方でうまく動作します。私はそうする。 :)

+0

私はすべてのモジュールを同じフォルダ "node_modules"に入れることができますか?それに伴う問題は何ですか? http://stackoverflow.com/questions/18012291/what-is-the-best-way-tools-to-organize-javascript-code-that-runs-on-client-ando-o –

+3

あなたはパッケージ名前(npm)がコンポーネント名(bower)と衝突する可能性があります。つまり、「jquery」が原因で問題が発生し、問題が発生します。 –

+0

NPMとBowerを同じプロジェクトの市民として育てる方法を歓迎します。 –