それは最良の答えではないかもしれませんが、一つの方法は、このことができます
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());
}
}
希望。 :-)
angular-cliを使用していますか?もしそうなら、あなたの.angular-cli.json内の環境を宣言し、 "ng build --environment = production"などを使って異なるバージョンのアプリケーションをビルドすることができます。もちろん、これはコンパイル時にのみ機能します。多分ビルドした後に環境を変更したい場合は、複数の環境用のアングルアプリを構築し、そのバネプロファイルに基づいてサーブレットに異なる角度ビルドを提供させることができます。 – andreas
ええ、私は現在、角度cliを使用して自分の環境を宣言しています。しかし、今は「一度ビルドしてどこにでも展開する」という原則に従いたいと思いますが、それはAngular2の場合よりも難しいようです。 – RoyalSausage