Wie kann ich die Versionsnummer meiner Meteor Apps auf der Benutzeroberfläche platzieren?

8

Ich habe eine Meteor-Anwendung, die verschiedene Zweige für verschiedene Clients hat. Dies ist, weil Kunden spezielle Dinge wollen. Natürlich, oder?

Ich möchte in der Lage sein, die Git-Verzweigung und den Tag / Hash für die bereitgestellte Version der App für diesen Client irgendwo in der Benutzeroberfläche zu platzieren.

Die Frage ist wie? Gibt es einen Weg in Meteor, um diese Informationen zu bekommen und sie einfach zu benutzen?

Danke!

    
DigiLord 11.09.2014, 20:39
quelle

4 Antworten

10

In meinen Produktions-Apps habe ich dieses Problem auf folgende Weise gelöst:

Dateien

App / .git / hooks / post.commit

App / MeteorApp / hooks / post-commit-Version

App-Struktur:

%Vor%

Immer wenn der Entwickler Code schreibt, wird .git/hooks/post-commit ausgeführt, was nodejs script in App/MeteorApp/hooks/post-commit-version ausführt.

Skript post-commit-version generiert version.json in App/MeteorApp/private dir im Format:

%Vor%

Alles, was in private gespeichert ist, steht dem Server bei der Produktion zur Verfügung.

Wie wird version.json in der App angezeigt?

App / MeteorApp / Beide / Sammlungen / Version.js :

%Vor%

App / MeteorApp / server / startup.js

%Vor%

Nachdem die Anwendung implementiert wurde, wird startup Callbacks ausgelöst und die Version wird in die Sammlung Version eingefügt.

App / MeteorApp / server / publish / version.js :

%Vor%

App / MeteorApp / client / startup.js :

%Vor%

Und dann irgendwo in der Vorlage einfach Helfer erstellen:

%Vor%

In template_name wird die Version mit {{version.commit}} {{version.branch}} {{version.timestamp}} angezeigt.

Seitennotiz 1

Script post-commit-version hat keine js Erweiterung, weil ich nicht möchte, dass Meteor es in ein Bundle aufnimmt oder die App jedes Mal, wenn ich diese Datei ändere, in der Entwicklung neu lade. Es ist jedoch möglich, post-commit-version.js zu verwenden, wenn diese Datei in .dir (wie App/MeteorApp/.hooks ) gespeichert wird, da Verzeichnisse mit . als erstes Zeichen nicht von Meteor verarbeitet werden.

Seitennotiz 2

Eine andere Möglichkeit wäre das Laden von version.json auf der Serverseite Meteor.startup , das Parsen von json und das Anhängen an globale Variable wie App.version . Später benutze es mit Meteor.method :

%Vor%

Auf dem Client rufen Sie einfach Methode:

%Vor%

Der Helper einiger Vorlagen könnte es verwenden:

%Vor%     
Kuba Wyrobek 12.09.2014, 05:51
quelle
5

Ich habe gerade ein Paket dafür geschrieben und es auf Atmosphäre veröffentlicht. Das Paket wird mit einem Template-Helper geliefert, um Ihren git commit Hash, Tag oder Zweig einfach so anzuzeigen:

%Vor%

Weitere Informationen finden Sie unter atmospherejs.com/johdirr/meteor-git-rev .

    
johipsum 11.05.2015 18:48
quelle
1

Zum größten Teil mochte ich Kubas Antwort, und ich versuchte tatsächlich, sein Knotenscript zu verwenden, aber stieß auf Probleme mit der Versprechens-Bibliothek. Wie auch immer, ich habe mein eigenes Post-Commit-Bash-Skript geschrieben und ich denke, es ist sauberer und einfacher.

%Vor%

Ich stimme mit allem anderen in Kubas Antwort überein, wo die Datei gespeichert und wie auf sie im Server zugegriffen werden kann.

    
Mark Lynch 26.08.2015 11:07
quelle
1

Ich habe versucht, einen anderen Ansatz basierend auf dem, was ich hier gesehen habe, und nur für den Fall, dass jemand die Version auch vom Client bekommen muss, hier ist eine Windows-basierte Antwort:

Pre-Commit-Datei

%Vor%

Auto-Versions-Datei

%Vor%

initial _version.js Datei

%Vor%

Du machst also einfach einen Commit, führst deine App aus, öffnest die Konsole des Browsers und tippst myVar.version (natürlich ist das nur ein einfaches Beispiel)

Beachten Sie, dass _version.js nach dem Festschreiben als geändert markiert wird, aber die Versionsaktualisierung tatsächlich ausgeführt wird, ignorieren Sie einfach die Datei, die markiert wird. Sie können diese Methode mit der Post-Commit-Technik von Kuba Wyrobek ausführen, um die Post-Commit-Git-Version zu erhalten (in meinem Fall ist es ausreichend, die vorherige Version zu kennen).

    
tcastelli 14.12.2015 09:52
quelle

Tags und Links