2017-05-11 3 views
0

Ich habe eine Frontend-App auf eckigen 2 und eine Back-End-App auf Java EE über Spring Boot und Maven in Eclipse Neon gebaut. Sie sind auf verschiedenen Ports in meinem lokalen Host für die Entwicklung konfiguriert, und ich muss meine eckige App Proxy für die Verwendung des Back-End-Java-Projekts.Proxy-Konfiguration Angular 2 für Spring Boot ohne Angular CLI und ng dienen

Ich begann mit einer proxy.config.json Datei wie diese zu erstellen:

{ 
    "/api/*": { 
    "target":"http://localhost:8080", 
    "secure":false 
    } 
} 

Meine package.json Datei nicht direkt Winkel cli für den Startbefehl verwendet wird, wird es einen weiteren Build-Prozess aufrufen und es ist innerhalb Dieser andere Build-Prozess (ein anderes JSON-Paket), wo ich den Port, das Verzeichnis usw. einstellen kann. Kurz gesagt, wie kann ich einen Proxy von meinem Frontend zu meinem Backend aufrufen, ohne angular cli und ng serve im Start-Befehl meines Pakets zu verwenden .json Datei? Wie kann ich meine proxy.config.json Datei aufrufen, ohne ng serve zu verwenden?

Danke!

+0

Wie starten Sie Ihr Webpack wenn nicht durch ng diene ??? –

+0

Innerhalb des 'package.json'-Skripts führt der Start-Befehl einen benutzerdefinierten Build-Prozess (custom-build-config.json) aus, und innerhalb dieses benutzerdefinierten Build-Prozesses haben wir einen' bundle'-Abschnitt, in dem wir ein 'webpack' festlegen Eigenschaft gleich "wahr". In diesem benutzerdefinierten Build analysieren mehrere Javascript-Dateien die Eigenschaften aus der benutzerdefinierten Build-Bibliothek. Wenn ich meine js-Dateien durchblättere, sehe ich keine Eigenschaft für die Proxy-Konfiguration. Ich habe mich hauptsächlich gefragt, ob eckig, abgesehen von eckigen Klammern, eingebaut wurde –

Antwort

0

Normalerweise haben Sie einen Entwicklungsaufbau und einen Produktionsaufbau.

ng serve startet den Entwicklungsserver an einem bestimmten Port (zB: 4200). Standardmäßig ist der Build der Entwicklungs-Build, sofern Sie nicht ng serve --prod angeben.

Daher können Sie für Entwicklungszwecke Ihren Proxy einrichten, um bestimmte Anrufe (z. B .: http://localhost:80/ui) an Ihren Entwicklungsserver, der unter ng serve gestartet wurde, und somit standardmäßig an http://localhost:4200 weiterzuleiten. Dann greifen Sie über Ihren Proxy auf die Angular App zu (zB: http://localhost:80/ui).

Bei der Produktion würden Sie einen Produktionsaufbau erstellen, indem Sie ng build --prod verwenden, den Build auf einen Server platzieren und den Proxy einrichten, um bestimmte Aufrufe an diesen Server weiterzuleiten.

Lassen Sie mich wissen, wenn ich etwas verpasst habe.