私はポジティブについて100%確信が持てません。ここにいくつかの欠点があります
多くの場合、安定していない可能性のあるサードパーティのサーバー/エンドポイントに依存関係を追加することになります。
bowerで、一部の依存関係のリポジトリが削除または移動されたことがありました。新しい開発者がやって来て、私のリポジトリのクローンを作成してタイプし
bower install
、アクセスできないリポジトリのエラーを取得します。代わりに、サードパーティのコードをリポジトリにチェックインした場合、その問題は解消されます。
これは、実行しているサーバーに保持されているコピーからdepをプルする場合にOPが提案するように解決されます。
初心者には難しい。
コマンドラインの経験がほとんどない美術の学生と仕事をしています。彼らは、Processing、arduino、Unity3Dでアートを作り、ほとんど技術的な知識は必要ありません。彼らは私が書いたHTML5 / JavaScriptを使いたかったのです。バウアーのためのステップ
- githubからリポジトリのZipをダウンロードします(githubのすべてのリポジトリの右側にあります。gitを知らないためです)。
- ノードをダウンロードしてインストールします(bowerをインストールするためにnpmを実行できます)
- gitまたはmsysgitをインストールします(bowerはそれを必要とし、多くの学生のマシンにはインストールされていないため)
- バウアーをインストール(
npm install -g bower
)
bower install
(最終的に依存関係を取得するため)
githubリポジトリにファイルをチェックインするだけで、手順2〜5をすべて削除できます。これらの手順は、おそらくあなたと私にとって非常に簡単に聞こえます。学生にとって、彼らは非常に混乱していて、すべてのステップと目的は何であるかを知りたいと思っていましたが、それは良い学習である可能性がありますが、クラスのトピックと完全に直交していて、すぐに忘れられた可能性があります。
それは引っ張るときに別のステップを追加します。
それを何度も繰り返しgit pull origin master
てからコードをテストするとbower install
、最新の詳細を取得するために入力する必要があることを覚えておくのに5〜10分かかります。これはプルスクリプトフックで簡単に解決できます。
gitの分岐が難しくなります
2つのブランチが異なる依存関係を持っている場合、一種のねじ込みです。bower install
毎回入力できると思いますgit checkout
。スピードについてはこれで終わりです。
あなたのポジティブについては、それぞれに反例があると思います
共有モジュール、特にバージョンのアップグレードの配布とインポートのプロセスを容易にします。
対何?配布は確かに簡単ではありません。20の代わりに1つのリポジトリを取得するのは簡単ではなく、失敗する可能性が高くなります。上記の1を参照
ソース管理から共有モジュールを削除し、チェックアウト/チェックインを高速化および簡略化します(20以上のライブラリを使用するアプリケーションがある場合、これは実際の要因です)。
逆に、修正のために他の人に依存することを意味します。depがサードパーティのソースから取得していて、バグを修正する必要がある場合は、パッチが適用されるまで待つ必要があります。さらに悪いことに、おそらく、必要なバージョンとパッチだけを取得することはできません。プロジェクトとの下位互換性がない可能性がある最新のバージョンを取得する必要があります。
あなたはそれらのリポジトリを別々にクローンすることでそれを解決できます、そしてあなたはあなたのコピーにあなたのプロジェクトの担当者を指すようにします。次に、修正をコピーに適用します。もちろん、ソースをリポジトリにコピーするだけでも、それを行うことができます
組織で使用されているサードパーティのライブラリをより詳細に制御または認識できます。
それは議論の余地があるようです。開発者がサードパーティのライブラリをの下の独自のフォルダに配置することを要求するだけです<ProjectRoot>/3rdparty/<nameOfDep>
。使用されているサードパーティのライブラリを簡単に確認できます。
ポジティブがないと言っているのではありません。私が最後に参加したチームは100を超えるサードパーティの担当者でした。私はそれがすべてのバラではないことを指摘しているだけです。たとえば、自分のニーズに合わせてバウアーを取り除くべきかどうかを評価しています。