Skip to content

ローカル開発

接続されたプロジェクトは、マシン上で実行するための2つのターゲット、servedevを公開します。違いはスコープです。つまり、アプリケーションのどの部分をローカルで実行し、どの部分をデプロイされたAWSインフラストラクチャを指すかという点です。

次のような接続を持つワークスペースを考えてみましょう。tRPC apiを呼び出すウェブサイトがあり、さらにmcpサーバーを呼び出すagentも呼び出します。

serveターゲットは、対象のプロジェクトのみをローカルで実行します。接続されている他のすべてのプロジェクトはデプロイ済みであることが期待され、実際のAWS URLでアクセスされます。

Terminal window
pnpm nx serve website

対象のプロジェクトはデプロイされたリソースと通信するため、それらがどこにあるかを知る必要があります。ウェブサイトの場合、これはruntime-config.jsonによって提供されます(ローカルランタイム設定を参照)。これはデプロイされたアプリケーションから読み込みます。ランタイム設定を読み取るサーバーサイドプロジェクト(APIとエージェント)の場合は、RUNTIME_CONFIG_APP_ID環境変数を設定して、デプロイされたAppConfigアプリケーションを指すようにします。

Diagram

単一のプロジェクトを、それが依存するすべての「実際の」デプロイ済みバージョンに対して反復処理したい場合は、serveを使用します。

devターゲットは、対象のプロジェクトそれに推移的に接続されているすべてのプロジェクトをマシン上で実行します。接続ジェネレーターがこれを自動的に配線します。ウェブサイトでdevを実行すると、apiagent、およびエージェントを通じて到達するmcpサーバーのローカルサーバーも起動します。

Terminal window
pnpm nx dev website

この方法で実行すると、ウェブサイトのruntime-config.jsonは自動的にオーバーライドされ(ViteのMODEを介してlocal-devに設定)、デプロイされたURLの代わりにローカルで実行されているサーバーを指すようになります。

Diagram

すべてのプロジェクトがローカルで実行されるため、デプロイされた依存関係はありません。

複数の接続されたプロジェクトを同時に作業していて、インフラストラクチャをデプロイせずに素早く反復処理したい場合は、devを使用します。

複数のコンポーネントを持つプロジェクト

Section titled “複数のコンポーネントを持つプロジェクト”

一部のプロジェクトタイプは、単一のプロジェクト内に複数のコンポーネントを保持できます(例えば、複数のエージェントとMCPサーバーを含むTypeScriptまたはPythonプロジェクト)。これらの場合:

  • プロジェクトレベルのdevターゲットは、プロジェクトのすべてのコンポーネントを一緒に起動します。各コンポーネントは生成時にdevに追加されます:
Terminal window
pnpm nx dev my-project
  • 各コンポーネントは<component-name>-devターゲットも公開するため、単一のコンポーネントを個別に実行できます:
Terminal window
pnpm nx my-component-dev my-project

各プロジェクトタイプのローカル開発サーバーの詳細については、関連するガイド(例えばReact Websiteガイド)を参照してください。