Verwalten Sie AngularJS Module Version und Releases mit Grunt

8

Momentan habe ich mehrere Winkelmodule. Eine benutzerdefinierte Grunt-Aufgabe erstellt, minimiert und verpackt jedes Modul, sodass es bereit ist, es bereitzustellen. Das Einzige, was ich noch nicht getan habe, ist die Verwaltung der Version dieser Module.

Jedes Projekt (eines pro Modul) enthält eine package.json-Datei, in der ich den Namen und die Version einer Komponente deklariere:

%Vor%

Jedes Modul wird also in einem Verzeichnis * / dist / my-module / 1.0.0 /

erstellt

Aber im Modul selbst muss ich auf seine Version zugreifen. In einem Controller deklariere ich zum Beispiel eine Variable $scope.version = '1.0.0' . Aber derzeit ist es im Controller-Skript fest codiert.

Erste Frage , gibt es eine Möglichkeit, wie das Modul die Version aus der package.json Datei bekommen könnte? Oder dass die grunt-Task, die die Anwendung erstellt, ein bestimmtes Flag in den Skripten durch die aktuelle Version des Moduls ersetzt? (Zum Beispiel könnte ich meine Variable $scope.version = 'FLAG_VERSION' deklarieren, da ich weiß, dass während des Build-Grunt das Flag durch den richtigen Wert ersetzt wird)

Zweite Frage , gibt es eine Grunt-Komponente, die es erlaubt, die aktuelle Version eines Moduls in meinem VCS zu markieren (zB SVN) und dann die aktuelle Version zu inkrementieren? Kurz gesagt, führen Sie eine Freigabe des Moduls durch.

Bearbeiten: neue Frage zu diesem Thema, siehe Bump eine bestimmte Versionsnummer auf SVN mit Grunt

Jede Hilfe oder Führung wird geschätzt!

    
Eria 05.01.2016, 13:23
quelle

1 Antwort

1

Erste Frage

Ich habe meiner grunt build eine grunt-ng-constant Aufgabe (danke @Joe) hinzugefügt, um Winkelkonstanten aus der Datei package.json zu erzeugen. Es funktioniert großartig, ich kann sie jetzt in meine Anweisungen und Dienste einfügen. Ich musste den Modulnamen jedoch zu meiner package.json hinzufügen, da die ng-constant-Task es benötigt, um das Modul für die generierten Konstanten zu identifizieren. Und der in package.json deklarierte Name war mehr ein Projektname als der Name des Moduls.

%Vor%

Unterhalb des Ergebnisses der Aufgabe ng-constant:

%Vor%

Ich habe meine Grunt-Build-Aufgabe geändert, um dieses generierte Skript am Ende meines Anwendungsskripts vor der Verkleinerung zu erstellen. So, jetzt kann ich appInfo in einem Dienst zum Beispiel verwenden:

%Vor%
  

Seien Sie vorsichtig! Ich hatte eine Überraschung, wenn ich dies auf mehrere Module auf derselben Seite anwendete: Wenn eine Konstante mit demselben Namen auf zwei verschiedenen Modulen deklariert wird, wird der Wert des ersten überschrieben Letzteres.    AngularJS module.constant (): wie eine Konstante nur innerhalb eines Moduls definieren?

Zweite Frage

Ich habe eine andere Frage, genauer gesagt, zu diesem Thema gestellt: Bump eine bestimmte Versionsnummer auf SVN mit Grunt .

    
Eria 08.01.2016, 11:23
quelle

Tags und Links