bower_componentsは無視されるべきですか?


157

bower.jsonファイルのみを保持し、bower_componentsディレクトリ全体をgitignoreするのは良い習慣でしょうか?


私はちょうどこの正確な質問に実際に答えるSymfonyの公式クックブックに気づきました。「現在、.gitignoreファイルにディレクトリを追加するのではなく、Bowerによってダウンロードされたアセットをコミットする必要があるでしょう」
Pierre de LESPINAY

回答:


149

バウアー公式ページはこう述べている:

:他のユーザーが使用することを目的としたパッケージを作成していない場合(たとえば、Webアプリを構築している場合)、インストールされているパッケージを常にソース管理にチェックインする必要があります

引用のリンクを必ずチェックしてください、それはいくつかの長所と短所を議論します。それが言及する主なプロは、それらをチェックインすると、リポジトリが利用可能である限り、依存関係が常に利用可能であることを保証します。Bower、GitHub、またはその他の必要なものに何が起こっても関係ありません。


1
この興味深い記事をありがとう。したがって、今のところ、バージョンをフリーズする「ロックファイル」はまだありません。
Pierre de LESPINAY 2014年

1
@PierredeLESPINAYトップレベルのみ。不足しているのは、npmのシュリンクラップ機能に相当するものです。
2014年

3
彼らはまた、彼らのブログ記事で「最終的に、すべての/ bower_componentsディレクトリをチェックインするかどうかの選択はあなた次第です...」と言っています。
クリシュナラジ2016年

3
それらをチェックインする背後にある理由は、いつの日かライブラリがインターネットから消えるか、またはそれらがダウンタイムになり、ビルドの失敗を引き起こす可能性があることです。Maven / Gradleユーザーとして、依存関係のチェックインについて考えたことはありません。
クリシュナラジ2016年

7
ソースコントロールにインストールされたパッケージを確認するための公式バウアーページ上のアドバイスは2014年に削除されました:github.com/bower/bower.github.io/commit/...
ユーザー

52

新しく生成されたYeoman AngularJSプロジェクトの.gitignoreファイルには、無視されるようにリストされたbower_components(およびnode_modules)があります(Yeomanを知らない場合は、最新のWebアプリ用の非常に評判の良いWeb足場ツールであるため、これで十分です)。

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components

9

どちらのアプローチにも時間と場所があります。Yeomanにとって、bower.jsonはツールチェーンのツールであり、bowerエコシステムで生き続け、呼吸し続ける必要があるため、これに依存するのが適切です。デプロイ可能なWebアプリの場合、一般的に、依存関係をコミットしてより多くの制御を維持することをお勧めします。

これが私が気に入っている良い記事です。


6

GruntとNodeをBowerで使用している場合は、bower_componentsを.gitignoreに配置するのが理にかなっています。これは、grunt serveまたはgrunt buildを実行すると、依存関係が処理されるため、Yeomanでそれを追加する理由は確かです。 .gitignore


5

ヨーマン発電予め充填された.gitignoreの bower_componentsを持つファイルを、それはまた、他のディレクトリで予め満たされた私は、私はいくつかの研究をしたので(WWWのように)最終のアプリのために必要とされるであろうと思うだろう。

www / index.htmlがapp / index.htmlの縮小版であることを発見しました。appディレクトリーとその内容(bower_componentsを含む)には、出力ディレクトリー(www)に必要なソース・ファイルが含まれています。ソースディレクトリをソース管理(つまりgit)にコミットしますが、生成されたファイル(つまりwww)はコミットしません。bowerやnpmなどのパッケージマネージャーは、ビルド/生成フェーズで使用するためのものであり、アーティファクトはソース管理にチェックインするためのものではありません。

最終的には、gitにチェックインするソースは、開発またはデプロイメントの目的でプロジェクトの残りの部分をビルドするために必要な最小限の構成です。


0

Shawn Lonasによって作成されたbower -lockerを使用してロックファイルを作成する場合/bower_componentsは、dir を無視してチェックインbower.jsonbower-locker.bower.jsonファイルのみを行うことをお勧めします。

bower-lockerが作成される前は、bowerにシュリンクラップ機能ないという問題が原因で不利でしたが、上記のライブラリによって軽減できます。

次のコマンドを実行してそれを実現します。

npm install bower-locker -g

または

yarn global add bower-locker

次にbower.json、次のコマンドを実行して、既存のファイルに基づいてロックファイルを生成します。

bower-locker lock

元のbower.jsonファイルは次の名前に変更されますbower-locker.bower.json

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.