Angular CLIアプリケーションは、ng serveコマンドで配信できます。
これにより、アプリケーションがコンパイルされ、不要な最適化がスキップされ、開発サーバーが起動し、その後の変更が自動的に再ビルドおよびライブリロードされます。
サーバーはCtrl+Cを押して停止できます。
ng serveは、angular.jsonで指定されたデフォルトプロジェクトのserveターゲットのビルダーのみを実行します。ここでは任意のビルダーを使用できますが、最も一般的(かつデフォルト)なビルダーは@angular/build:dev-serverです。
特定のプロジェクトで使用されているビルダーは、そのプロジェクトのserveターゲットを調べることで判断できます。
{ "projects": { "my-app": { "architect": { // `ng serve` invokes the Architect target named `serve`. "serve": { "builder": "@angular/build:dev-server", // ... }, "build": { /* ... */ }, "test": { /* ... */ } } } }}
バックエンドサーバーへのプロキシ
プロキシサポートを使用して、特定のURLをバックエンドサーバーに転送するには、--proxy-configビルドオプションにファイルを渡します。
例えば、http://localhost:4200/apiへのすべての呼び出しをhttp://localhost:3000/apiで実行されているサーバーに転送するには、以下の手順を実行します。
- プロジェクトの
src/フォルダーにproxy.conf.jsonファイルを作成します。 - 新しいプロキシファイルに以下の内容を追加します。
{ "/api/**": { "target": "http://localhost:3000", "secure": false }}
- CLI設定ファイル
angular.jsonで、serveターゲットにproxyConfigオプションを追加します。
{ "projects": { "my-app": { "architect": { "serve": { "builder": "@angular/build:dev-server", "options": { "proxyConfig": "src/proxy.conf.json" } } } } }}
- このプロキシ設定で開発サーバーを実行するには、
ng serveを呼び出します。
NOTE: プロキシ設定ファイルに加えた変更を適用するには、ng serveプロセスを再起動する必要があります。
パスマッチングの挙動はビルダーに依存する
@angular/build:dev-server (Viteベース)
/apiは/apiのみにマッチします。/api/*は/api/usersにマッチしますが、/api/users/123にはマッチしません。/api/**は/api/usersと/api/users/123の両方にマッチします。
@angular-devkit/build-angular:dev-server (Webpack DevServerベース)
/apiは/apiとすべてのサブパスにマッチします(/api/**と同等)。