Ich bin mir nicht 100% sicher. Hier sind ein paar Negative
Am Ende fügen Sie häufig Abhängigkeiten zu Servern / Endpunkten von Drittanbietern hinzu, die möglicherweise nicht stabil sind.
Ich habe es mit bower passieren lassen, dass das Repo einiger Abhängigkeiten gelöscht oder verschoben wurde. Also kommt ein neuer Entwickler, klont mein Repo, tippt
bower install
und bekommt Fehler für nicht zugängliche Repos. Wenn ich stattdessen den Code eines Drittanbieters in mein Repo eingecheckt hätte, verschwindet dieses Problem.
Dies wird gelöst, wie es das OP vorschlägt, wenn Sie Deps von Kopien abrufen, die auf einem von Ihnen ausgeführten Server gespeichert sind.
Härter für Noobs.
Ich arbeite mit Kunststudenten mit sehr wenig Kommandozeilenerfahrung. Sie machen Kunst mit Processing, Arduino, Unity3D und kommen mit sehr wenig technischem Wissen aus. Sie wollten etwas HTML5 / JavaScript verwenden, das ich geschrieben habe. Schritte wegen Laube
- Laden Sie Zip of Repo von Github herunter (beachten Sie, dass dies rechts von jedem Repo auf Github steht. Weil sie Git nicht kennen)
- Laden Sie den Knoten herunter und installieren Sie ihn (damit wir npm ausführen können, um bower zu installieren).
- Installieren Sie git oder msysgit (da bower es benötigt und es nicht auf den Computern vieler Schüler installiert ist)
- Laube einbauen (
npm install -g bower
)
bower install
(endlich um unsere Abhängigkeiten zu bekommen)
Die Schritte 2 bis 5 können alle gelöscht werden, wenn wir nur die Dateien in unser Github-Repo einchecken. Diese Schritte klingen für Sie und mich wahrscheinlich sehr einfach. Für die Schüler waren sie sehr verwirrend und sie wollten wissen, welche Schritte wo und wofür sie waren, was möglicherweise ein gutes Lernen sein könnte , aber völlig orthogonal zum Klassenthema war und so wahrscheinlich schnell vergessen wurde.
Beim Hinzufügen wird ein weiterer Schritt hinzugefügt.
Es ist oft passiert, dass ich einen git pull origin master
Code mache und dann bower install
teste. Es dauert 5 bis 10 Minuten, bis ich mich daran erinnere, dass ich tippen musste , um die neuesten Deps zu erhalten. Ich bin sicher, das lässt sich leicht mit einem Pull-Script-Hook lösen.
Es macht die Verzweigung von Git schwieriger
Wenn 2 Zweige unterschiedliche Deps haben, sind Sie irgendwie geschraubt. Ich nehme an, Sie können bower install
nach jedem tippen git checkout
. Soviel zur Geschwindigkeit.
Was Ihre positiven Aspekte betrifft, denke ich, dass es zu jedem dieser Beispiele Gegenbeispiele gibt
Erleichtert das Verteilen und Importieren freigegebener Module, insbesondere von Versions-Upgrades.
vs was? Es ist sicherlich nicht einfacher zu verteilen. Das Ziehen eines Repos anstelle von 20 ist nicht einfacher und schlägt eher fehl. Siehe Nr. 1 oben
Entfernt gemeinsam genutzte Module aus der Quellcodeverwaltung, beschleunigt und vereinfacht das Auschecken / Einchecken (wenn Sie Anwendungen mit mehr als 20 Bibliotheken haben, ist dies ein echter Faktor).
Umgekehrt bedeutet dies, dass Sie für Korrekturen von anderen abhängig sind. Das heißt, wenn Ihre Deps von einer Quelle eines Drittanbieters stammen und Sie einen behobenen Fehler benötigen, müssen Sie warten, bis sie Ihren Patch anwenden. Schlimmer noch, Sie können wahrscheinlich nicht nur die gewünschte Version und Ihren Patch verwenden, sondern müssen auch die neueste Version verwenden, die möglicherweise nicht abwärtskompatibel mit Ihrem Projekt ist.
Sie können dies lösen, indem Sie die Repos separat klonen und dann Ihre Projektabteilungen auf Ihre Kopien verweisen. Anschließend wenden Sie Korrekturen an Ihren Kopien an. Natürlich können Sie das auch tun, wenn Sie nur die Quelle in Ihr Repo kopieren
Ermöglicht mehr Kontrolle oder Kenntnis darüber, welche Bibliotheken von Drittanbietern in Ihrer Organisation verwendet werden.
Das scheint fraglich. Fordern Sie die Entwickler lediglich auf, Bibliotheken von Drittanbietern in einem eigenen Ordner unter abzulegen <ProjectRoot>/3rdparty/<nameOfDep>
. Es ist genauso einfach zu sehen, welche Bibliotheken von Drittanbietern verwendet werden.
Ich sage nicht, dass es keine positiven Ergebnisse gibt. Das letzte Team, in dem ich war, hatte> 100 Deps von Drittanbietern. Ich weise nur darauf hin, dass es nicht nur Rosen sind. Ich überlege, ob ich zum Beispiel die Laube für meine Bedürfnisse loswerden soll.