跳转到内容

本地开发

已连接的项目公开了两个目标用于在您的机器上运行它们:servedev。区别在于范围 —— 您的应用程序有多少部分在本地运行,以及有多少部分指向已部署的 AWS 基础设施。

考虑一个具有以下连接的工作空间:一个调用 tRPC api 的网站,同时还调用一个 agent,而该 agent 又调用一个 mcp 服务器。

serve 目标仅在本地运行目标项目。它连接到的所有其他项目都预期是已部署的,并通过其真实的 AWS URL 访问。

Terminal window
pnpm nx serve website

因为目标项目与已部署的资源通信,所以它需要知道这些资源的位置。对于网站,这是通过其 runtime-config.json 提供的(参见 本地运行时配置),您可以从已部署的应用程序加载它。对于读取运行时配置的服务器端项目(API 和 agent),请设置 RUNTIME_CONFIG_APP_ID 环境变量以指向您已部署的 AppConfig 应用程序。

Diagram

当您想要针对其所依赖的所有内容的”真实”已部署版本迭代单个项目时,请使用 serve

dev 目标运行目标项目以及与其传递连接的每个项目,全部在您的机器上。连接生成器会自动完成此配置 —— 在网站上运行 dev 也会为 apiagent 以及通过 agent 访问的 mcp 服务器启动本地服务器。

Terminal window
pnpm nx dev website

以这种方式运行时,网站的 runtime-config.json 会自动被覆盖(通过 Vite 的 MODE,设置为 local-dev),使其指向您本地运行的服务器而不是已部署的 URL。

Diagram

每个项目都在本地运行,因此没有已部署的依赖项。

当您同时处理多个已连接的项目并希望快速迭代而无需部署基础设施时,请使用 dev

某些项目类型可以在单个项目中包含多个组件(例如包含多个 agent 和 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 指南。