2017-09-12 3 views
1

Ich bin auf der Suche nach einer Lösung, um Server-Einstellungen in einer Config-Datei von der JS-App (die ich im dev oder prod (gebaut) -Modus laufen könnte) zu ermöglichen der Server, um die Datei nach einem zufälligen Zeitpunkt (wenn sich die Einstellungen geändert haben) durch eine neue zu ersetzen und es der JS-App zu erlauben, sie abzuholen und ihre Einstellungen zu aktualisieren.Server-Einstellungen in modernen JavaScript-Anwendungen

Dies dient hauptsächlich zum Festlegen von URLs auf API-Endpunkte.

Meine Wahl des JS-Frameworks ist Angular 1 und 4, aber Antworten, die allgemein auf verschiedene JS-Frameworks/Bibliotheken ausgerichtet sind, sind anwendbar.

Antwort

1

-Server-Einstellungen in einer Konfigurationsdatei von einer Art getrennt von der JS App

Wenn Sie mit Ihren Server-Einstellungen an die Front ausgesetzt zu denken sind, dass sie bei gonna hat eine schlechte Zeit sind;)

Ich gehe davon aus, dass Sie denken, dass Sie API-URLs und vielleicht einige Konfigurationsdateien in einer separaten Datei behalten, während Sie entwickeln. Dann kann ich zwei Ansätze empfehlen:

1.) SIMPLE - Haben Sie eine einzige JS-Datei mit einem einzigen Objekt mit allen notwendigen API-URLs und Einstellungen in einer baumartigen Struktur für organisatorische Zwecke. Sie haben also einen Entwickler, eine Test- und Produktionseigenschaft mit allem darin. Sobald Sie App laden 1. Sache, die die App tun sollte, laden Sie die richtigen Einstellungen. Dies ist schnell und erfordert kein zusätzliches Wissen. Überall wo Sie etwas konfigurierbares fest codierten hatten, ersetzen Sie es durch eine Variable, die von dieser Datei abgeleitet ist. Dies sollte für einfache Anwendungen ausreichen. 2.) POWERFULL - Für größere Anwendungen mit vielen verschiedenen Abhängigkeiten und mehr formellen und professionellen Ansatz tun, was die meisten Leute tun, verwenden Sie NodeJs, nutzen Sie Grunt oder Gulp, um Versionsabhängigkeiten zu helfen und Skripte für verschiedene Builds zu schreiben. Es erfordert, dass du neue Sachen installierst und lernst, aber viel mehr Power zu bieten.

Noch besser kombinieren Sie diese beiden Ansätze, verknüpfen Sie die externen Abhängigkeiten dynamisch mit dem Build und internen über die korrekte JS-Datei mit allen API-Informationen enthalten.

Sie können auch andere npm-Module verwenden, um Sie bei der Entwicklung zu unterstützen, wie CSS vorkompilieren, Code auffüllen, Dateien nach Typen in Ordnern neu anordnen und Dateien oder Ordner automatisch benennen.

Grundsätzlich können die meisten REPETITIVE-Aufgaben, die Sie während der Entwicklung erledigen, auf diese Weise automatisiert werden. Dies wird bei größeren Projekten wirklich deutlich, wenn all dies von jemandem gehandhabt wird, der mit dem zweiten Ansatz kompetent und erfahren ist. Dadurch können monatelange sich wiederholende Aufgaben im gesamten Team eingespart werden.

+0

Meine Frage war hauptsächlich über das, was Sie in Punkt 1 sprechen. Ich denke an ein commonjs-Modul, das vom Build getrennt und servergeneriert ist. Beachten Sie auch, dass es sich nicht um Servereinstellungen handelt, sondern um Clienteinstellungen für den Server (API-URLs). – mare

+0

Dann gehen Sie mit Nummer Vorschlag 1. Warum brauchen Sie es Server erzeugt werden? Das bedeutet, dass Sie den Server kontaktieren müssen, um ihn zu erhalten. Sie kennen also die API, die Sie verwenden möchten.Oder ist es eine seltsame Art, dynamisches Laden bereitzustellen, so wie Sie einen Server haben, der sich wie ein Lastausgleicher verhält und Ihrer App einen anderen Server gibt, wenn einige überlastet sind. Weil solche Dinge dynamisch im Backend erledigt werden sollten. Verfügt die API über viele zu verwendende Varianten oder nur einige? Wenn Sie eine Verbindung herstellen, erstellen Sie statische Konfigurationsdateien, und fügen Sie sie in Ihre App ein, und verknüpfen Sie die richtige Datei beim Bootstrapping. – DanteTheSmith

+0

Der Schlüssel ist, dass diese Datei vom clientseitigen App-Build-Prozess getrennt ist. Vom Server generierte oder manuell erstellte Server spielen keine Rolle. – mare

0

Sie könnten Schluck (oder sogar Npm) als Aufgabenläufer für diese Art von Arbeit verwenden. Vielleicht würde dieser Artikel helfen? Die Hauptaufgabe eines Task-Läufers besteht darin, dass Sie eine bestimmte Variable (zB prod oder development) setzen können und der Task-Runner dann Ihre Konfigurationsdateien mit den vorliegenden Definitionen für prod oder dev config ausschaltet.

Verwandte Themen