Umgebungsunabhängige Builds mit der Vue-Webpack-Vorlage

9

Ich benutze einen Build-Server, um meine Vue-Projekte zu erstellen, indem ich den npm run build -Befehl verwende, der von der Vue 2-Vorlage bereitgestellt wird. Die Vue-Vorlage bietet außerdem die Möglichkeit, auf umgebungsspezifische Daten zuzugreifen, die in Dateien unterhalb des Verzeichnisses config konfiguriert werden können. Dinge wie prod.env.js , usw. Sie greifen dann über process.env.API_PREFIX auf diese Daten zu, wie im Template-Handbuch zu sehen ist.

Ich möchte in der Lage sein, den Code einmal zu erstellen und dann den gleichen Build (wie in der Ausgabe in Dist definiert) auf mehrere Server zu verteilen, aber die verschiedenen Server verwenden unterschiedliche Konfigurationen (verschiedene API_PREFIX etc). Zur Zeit werden die process.env Referenzen zum Zeitpunkt der Erstellung vom Webpack-Compiler erweitert. Deshalb muss ich für jede Umgebung neu aufbauen.

Ich kann mir ein paar Wege vorstellen, dies zu tun - offensichtlich muss das Laden der Konfiguration zur Laufzeit erfolgen, und da es im Browser läuft und sich auf eine Datei beziehen muss, müsste es durch eine sein AJAX-Anforderung für eine statische JSON-Konfiguration, die vom Webserver separat oder ähnlich ausgeführt wird. Aber ich würde gerne wissen, wie jemand hier mit dieser Anforderung umgehen würde.

    
amoe 17.02.2017, 17:14
quelle

1 Antwort

2

Ohne Ihre spezifische Architektur zu kennen, ist es schwierig, spezifische Ratschläge zu geben. Stattdessen werde ich ein paar allgemeine Ideen hinterlassen.

Um das, was Sie wollen, vernünftig zu machen, müssten Sie wahrscheinlich das Präfix von der Domäne ableiten, in der Sie das Frontend bedienen.

Neben der Verwendung von window.location zur Laufzeit gibt es ein paar Dinge, die Sie dafür verwenden können:

  • Relative Pfade /api/myinformation - Das Präfix wird automatisch von der Domäne abgeleitet, in der das Frontend bedient wird.
  • Lokaler Proxy während der Entwicklung, da Sie das Backend möglicherweise nicht auf localhost Ссылка ausführen möchten
  • Proxy-Pfad auf nginx oder ähnlichem neu geschrieben: Ссылка

Auch wenn es Ihren speziellen Fall nicht löst, hoffen Sie, dass es Ihnen eine Vorstellung davon gibt, was verfügbar ist.

    
aristidesfl 03.03.2017 15:10
quelle