2017-06-08 4 views
0

Momentan verwende ich eine Backend Springboot Applikation und eine Frontend Angular2 Applikation.Angular 2 Profile und Tomcat

Wir möchten den Code nicht ändern, wenn wir zwischen lokaler/Entwicklungs-/Akzeptanzumgebung wechseln, wir möchten nur unseren Tomcat wissen lassen, welche Version der Bereitstellung wir verwenden möchten.

Für meine Backend konnte ich dieser Anleitung folgen https://www.javacodegeeks.com/2012/06/spring-31-profiles-and-tomcat.html

Jetzt Angular2 Anwendung möchte für mein Frontend aber ich weiß nicht wirklich eine Idee, wie ich das auch tun müssen, starten oder wo sie suchen müssen.

Dank

+0

Verwenden Sie angular-cli? Wenn dies der Fall ist, können Sie Umgebungen in Ihrer .angular-cli.json deklarieren und verschiedene Versionen Ihrer App mit "ng build --environment = production" und anderen erstellen. Das funktioniert natürlich nur zur Kompilierzeit. Wenn Sie die Umgebung nach dem Erstellen ändern möchten, könnten Sie die eckige App für mehrere Umgebungen erstellen und das Servlet basierend auf dem Federprofil verschiedenen eckigen Builds zuweisen. – andreas

+0

Ja, ich benutze derzeit angular-cli und deklariere meine Umgebungen. Aber jetzt möchte ich dem Prinzip "einmal bauen, überall einsetzen" folgen, aber das scheint schwieriger zu sein als es mit Angular2 sein sollte. – RoyalSausage

Antwort

2

Es ist vielleicht nicht die beste Antwort, aber eine Möglichkeit, dies sein könnte:

1) In Ihrem package.json definiert Ihre verschiedenen Build-Ziele (ich habe alle Optionen außer Ausgabe-Pfad weggelassen der Kürze halber), werden, dass verschiedene Verzeichnisse für ihre Ausgabe verwenden:

"scripts": { 
    "build-prod": "ng build --output-path dist-prod", 
    "build-dev": "ng build --output-path dist-dev" 
} 

2) Lassen Sie Maven (oder Ihren Favoriten Build-Tool), um alle Winkel Varianten bauen, wenn Sie die Servlet bauen. Stellen Sie sicher, dass alle Varianten mit Ihrem Servlet bereitgestellt werden. In

3) configs für Ihre verschiedene Umgebungen, die ResourceHandlers für den richtigen Weg hinzufügen, abhängig von dieser Umgebung. Ich habe Springboot noch nicht verwendet, so ist hier ein Snippet von einem regulären Spring MVC Java Config:

@Configuration 
@Profile("dev") 
public class DevConfig { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 

     registry.addResourceHandler("/**").addResourceLocations("/dist-dev/") 
       .resourceChain(true).addResolver(new PathResourceResolver()); 
    } 

} 

Hoffnung dies helfen wird, bis jemand eine bessere Idee hat. :-)