2016-06-17 10 views
0

Ich schreibe eine git Repo UI-Komponenten, die ihre eigenen Bower Abhängigkeiten hat. In diesem Repo befinden sich /src und /dist Verzeichnisse. Ich dränge nur das /src Verzeichnis zu git, und benutze Schluck, um das /dist Verzeichnis zu erzeugen, damit die Dateien in /dist in irgendeinem Projekt eingeschlossen werden können, das UI-Bestandteile benutzt. Ich habe ein Skript in .bowerrc wie folgt:Wie wird die Bower-Postinstallation der Abhängigkeit ausgeführt?

"scripts": { 
     "postinstall": "gulp prep-dependency" 
    } 

gulp prep-dependency ein Schluck Aufgabe in meinem gulpfile angegeben ist. Wenn ich bower install aus dem Stammverzeichnis ausführen, das /src und .bowerrc enthält, funktioniert alles wie erwartet und der postinstall Befehl wird ausgeführt, der das Verzeichnis /dist generiert. Groß.

Jetzt möchte ich in der Lage sein, dasselbe aus einem anderen Projekt zu machen, nennen wir es ParentProject, das UI-Komponenten als Abhängigkeit hat.

Ich erwarte, dass, wenn ich im Stammverzeichnis von ParentProject bin und ich bower install ausführen, alle Bower Abhängigkeiten in ParentProjects bower.json installiert werden. Gute Nachrichten, sie sind installiert. Yay! Schlechte Nachrichten, dass postinstall Befehl von UI-Komponenten nie ausgeführt wird, so dass es nie ein /dist Verzeichnis, das ich brauche.

Wenn bower install rekursiv durch alle Abhängigkeiten läuft, wie kommt es, dass diese Postinstall nicht abgeholt wird? Liegt es daran, dass die Datei .bowerrc von UI-Components nicht an git übergeben wird, sodass ParentProject nicht einmal weiß, dass es eine postinstall gibt? Ich ignoriere es nicht explizit in meiner .gitignore Datei. Wie kann ich das funktionieren lassen?

Antwort

0

Bower-Pakete, die fertige (kompilierte) Dateien enthalten sollen. Wenn Sie bower install in Ihrem ParentProject Bower will not use.bowerrc in Abhängigkeiten in jeder Angelegenheit laufen:

Diese Haken sind nicht nach der Installation zu bauen Schritt für Komponente Autoren liefern soll. Daher wird die Konfiguration für diese Hooks in der .bowerrc-Datei im Verzeichnis des übergeordneten Projekts bereitgestellt.

So sollten Sie entweder die Art und Weise ändern, die Sie verteilen UI-Komponenten (das heißt Push-dist Version/erstellen Sie separate repos für Quellen und Bower Komponenten) oder fügen Sie benutzerdefinierte bauen Logik in Ihrem ParentProject