開発者ツール
Angular CLI

開発用にAngularアプリケーションを配信する

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で実行されているサーバーに転送するには、以下の手順を実行します。

  1. プロジェクトのsrc/フォルダーにproxy.conf.jsonファイルを作成します。
  2. 新しいプロキシファイルに以下の内容を追加します。
{
  "/api/**": {
    "target": "http://localhost:3000",
    "secure": false
  }
}
  1. CLI設定ファイルangular.jsonで、serveターゲットにproxyConfigオプションを追加します。
{
  "projects": {
    "my-app": {
      "architect": {
        "serve": {
          "builder": "@angular/build:dev-server",
          "options": {
            "proxyConfig": "src/proxy.conf.json"
          }
        }
      }
    }
  }
}
  1. このプロキシ設定で開発サーバーを実行するには、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/**と同等)。