2013-06-19 7 views
27

Bowerドキュメントには、なぜ静的なコンポーネントをチェックインするのですか?

N.Bが含まれています。他の人が消費するようなパッケージを作成していない場合(たとえば、Webアプリケーションを構築している場合)、インストールされているパッケージをソース管理にチェックする必要があります。

なぜ誰かが良い答えを持っていますか?

私はちょうどbower.jsonの依存関係を更新したいライブラリX.

のバージョンでの更新と私のレポは雑然としたくないウェブアプリを作っていた場合。私は、ほとんどのプロジェクトがビルド・ステップなどを持つと思います。ビルドステップではビルド前にbowerのインストール/アップデートを呼び出すことで、それらのファイルが連結/縮小などのために存在するようにします。

何か不足していますか?

答えて

28

依存関係を悪化させないようにすることで、アプリケーションの破壊やリモートからの展開が妨げられないようにします。これは、ビルドのステップがあっても発生する可能性があります。おそらく、すべてのビルドを完全にテストしていない可能性があります。自動化されたテストでは、特に視覚的な回帰ではなく、また、複数の開発者が異なるバージョンの依存関係を持つ可能性があります。依存関係をコミットすることによって、皆が同じバージョンにとどまるようにすることができます。 diffを見ることは、悪意のあるものが依存関係ツリーに導入されていないことを確認する良い方法です。

ノードの世界では、npm shrinkwrapはこれを部分的に解決しますが、チェックサムマッチングはまだ行いません。 Bowerは現在、同じものを実装するためにオープンticketを持っています。

あなたはこのブログの記事でそれについての詳細を読むことができます:Checking in front-end dependencies

+0

ええ、私は〜1.2.3の代わりに1.2.3を使うことができると思いました。 (または、ライブラリがセムバーを使用すると確信していてもOKですが)ライブラリXにbower.jsonがあり、ライブラリYへの嫌悪感があり、> 2.3.4以上の場合は問題になります。シュリンクラップ機能を楽しみにしています。 –

+3

はい、タグやバージョンを上書きできるため、バージョンをロックダウンするだけでは十分ではありません。そのため、npmシュリンクラップにはチェックサムの照合が必要であり、これは最初からBowerシュリンクラップで必要なものです。 –

+0

これはゲーム開発の場合と同じ理由です。パッケージを常にアップグレードしないでください。特定のバージョンでパッケージをフリーズまたは「シュリンク」して、展開やビルドの遅延を防ぐことができます。 –

0

この答えは、非技術的であるが、実用的な理由は、バウアーコンポーネントをチェックインしないように。

これらのパッケージをチェックインするのではなく、bower.jsonでbowerパッケージをロックダウンすることをお勧めしたいと思います。私を信頼するので、コンピュータに何千ものファイルをダウンロードして解凍することはできません。遅い実行コンピュータは、非常に大きく深いファイルパスに問題があります。そして、このインターネットの世界では、パッケージをダウンロードするのではなく、パッケージをダウンロードすることが常に簡単だと思います。

これは単なる問題です。それはすべて経験から来ています。私はGithubのコンポーネントを整備してプロジェクトをチェックしましたが、アップロードやダウンロード中は悪化しています。比較的新しいMacでやりました。

関連する問題