開発者ツール
Angular CLI

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

Angular CLIアプリケーションは、ng serveコマンドで配信できます。 これにより、アプリケーションがコンパイルされ、不要な最適化がスキップされ、開発サーバーが起動し、その後の変更が自動的に再ビルドおよびライブリロードされます。 サーバーはCtrl+Cを押して停止できます。

ng serveは、angular.jsonで指定されたデフォルトプロジェクトのserveターゲットのビルダーのみを実行します。 ここでは任意のビルダーを使用できますが、最も一般的(かつデフォルト)なビルダーは@angular-devkit/build-angular:dev-serverです。

特定のプロジェクトで使用されているビルダーは、そのプロジェクトのserveターゲットを調べることで判断できます。

{  "projects": {    "my-app": {      "architect": {        // `ng serve` invokes the Architect target named `serve`.        "serve": {          "builder": "@angular-devkit/build-angular:dev-server",          // ...        },        "build": { /* ... */ }        "test": { /* ... */ }      }    }  }}

このページでは、@angular-devkit/build-angular:dev-serverの使用法とオプションについて説明します。

バックエンドサーバーへのプロキシ

プロキシサポートを使用して、特定のURLをバックエンドサーバーに転送するには、--proxy-configビルドオプションにファイルを渡します。 例えば、http://localhost:4200/apiへのすべての呼び出しをhttp://localhost:3000/apiで実行されているサーバーに転送するには、以下の手順を実行します。

  1. プロジェクトのsrc/フォルダーにproxy.conf.jsonファイルを作成します。

  2. 新しいプロキシファイルに以下の内容を追加します。

    {   "/api": {     "target": "http://localhost:3000",     "secure": false   } }
  3. CLI設定ファイルangular.jsonで、serveターゲットにproxyConfigオプションを追加します。

    {   "projects": {     "my-app": {       "architect": {         "serve": {           "builder": "@angular-devkit/build-angular:dev-server",           "options": {             "proxyConfig": "src/proxy.conf.json"           }         }       }     }   } }
  4. このプロキシ設定で開発サーバーを実行するには、ng serveを呼び出します。

プロキシ設定ファイルを編集して設定オプションを追加します。以下にいくつかの例を示します。 すべてのオプションの詳細については、@angular-devkit/build-angular:browserを使用する場合はwebpack DevServerドキュメントを、または@angular-devkit/build-angular:browser-esbuildまたは@angular-devkit/build-angular:applicationを使用する場合はVite DevServerドキュメントを参照してください。

NOTE: プロキシ設定ファイルを編集した場合、変更を有効にするにはng serveプロセスを再起動する必要があります。

localhostの解決

Nodeバージョン17以降、Nodeはhttp://localhost:<port>http://127.0.0.1:<port>に常に解決するとは限りません これは各マシンの設定に依存します。

もしlocalhostURLをターゲットとするプロキシを使用している際にECONNREFUSEDエラーが発生した場合、 ターゲットをhttp://localhost:<port>からhttp://127.0.0.1:<port>に更新することで、この問題を解決できます。

[http-proxy-middlewareのドキュメント`](https://github.com/chimurai/http-proxy-middleware#nodejs-17-econnrefused-issue-with-ipv6-and-localhost-705)を参照してください。 詳細については。