2017-06-08 7 views
0

現在、私はバックエンドのspringbootアプリケーションとフロントエンドのAngular2アプリケーションを実行しています。角度2のプロファイルとtomcat

local/development/acceptance環境を切り替えるときにコードを変更したくない場合は、使用する展開のバージョンをtomcatに知らせたいだけです。私は、このガイドにhttps://www.javacodegeeks.com/2012/06/spring-31-profiles-and-tomcat.html

をたどることができた私のバックエンドで

は今、私はまた私のフロントエンドAngular2アプリケーションのためにこれをやってみたいが、私は本当にどこを見れを開始したりする方法についてのアイデアを持っていません。

おかげ

+0

angular-cliを使用していますか?もしそうなら、あなたの.angular-cli.json内の環境を宣言し、 "ng build --environment = production"などを使って異なるバージョンのアプリケーションをビルドすることができます。もちろん、これはコンパイル時にのみ機能します。多分ビルドした後に環境を変更したい場合は、複数の環境用のアングルアプリを構築し、そのバネプロファイルに基づいてサーブレットに異なる角度ビルドを提供させることができます。 – andreas

+0

ええ、私は現在、角度cliを使用して自分の環境を宣言しています。しかし、今は「一度ビルドしてどこにでも展開する」という原則に従いたいと思いますが、それはAngular2の場合よりも難しいようです。 – RoyalSausage

答えて

2

それは最良の答えではないかもしれませんが、一つの方法は、このことができます

1)あなたのpackage.jsonで(私は出力パスを除くすべてのオプションを省略しているあなたの別のビルドターゲットを定義)簡潔にするために、それは彼らの出力のために別のディレクトリを使用します。

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

2)あなたはサーブレットを構築する際のMaven(またはお好みの他のビルドツール)は、すべての角度のバリアントを構築してみましょう。サーブレットですべてのバリアントがデプロイされることを確認してください。

3)環境に応じて、適切なパスのResourceHandlerを追加する異なる環境用の設定を追加します。私はここにまだSpringbootを使用する正規のSpring MVCのJavaコンフィグからの抜粋ですしていない。誰かが良いアイデアを持ってまで、これが役立ちます

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

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 

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

} 

希望。 :-)