1. ホーム
  2. javascript

[解決済み] Bowerとnpmの違いは何ですか?

2022-03-15 20:58:15

質問

との根本的な違いは何ですか? bowernpm ? ただ、わかりやすくシンプルなものが欲しい。私の同僚が bowernpm は、プロジェクトにおいて互換性があります。

どのように解決するのですか?

すべてのパッケージマネージャには多くの欠点があります。どれに耐えられるか選べばいいだけです。

歴史

npm は、node.js モジュールの管理から始まりました (そのため、パッケージは node_modules と組み合わせると、フロントエンドでも機能します。 ブラウザ化 または ウェブパック .

バウワー はフロントエンドのためだけに作成され、それを念頭に置いて最適化されています。

レポの大きさ

npm は bower よりもはるかに大きく、汎用の JavaScript (例えば country-data 国別情報や sorts フロントエンドやバックエンドで使用可能なソート機能のためのもの)。

Bowerはパッケージの数がかなり少ないです。

スタイル等の取り扱い

Bowerはスタイルなどを含みます。

npmはJavaScriptに特化しています。スタイルは別途ダウンロードするか、あるいは npm-sass または sass-npm .

依存関係の処理

最大の違いは、npmはネストされた依存関係(ただし、デフォルトではフラット)を持つのに対し、Bowerはフラットな依存関係ツリーを必要とすることです。 (依存関係の解決の負担をユーザーに負わせる)。 .

ネストされた依存関係ツリーとは、依存関係がそれ自身の依存関係を持つことができ、さらにその依存関係がそれ自身の依存関係を持つことができる、ということを意味します。これにより、2つのモジュールが同じ依存関係の異なるバージョンを要求しても、まだ動作することができます。npm v3 以降、依存関係ツリーはデフォルトでフラット (スペースを節約する) になり、必要なところだけネストするようになりました。

フロントエンドのパッケージにはBowerを、Yeoman, Grunt, Gulp, JSHint, CoffeeScriptなどの開発用ツールにはnpmを使用するプロジェクトもあります。


リソース