Pular para o conteúdo

Desenvolvimento Local

Projetos conectados expõem dois targets para executá-los em sua máquina: serve e serve-local. A diferença é de escopo — quanto da sua aplicação é executado localmente versus apontando para a infraestrutura AWS implantada.

Considere um workspace com as seguintes conexões: um website que chama uma api tRPC, e também chama um agent que por sua vez chama um servidor mcp.

O target serve executa apenas o projeto alvo localmente. Todos os outros projetos aos quais ele se conecta devem estar implantados, e são acessados em sua URL AWS real.

Terminal window
pnpm nx serve website

Como o projeto alvo se comunica com recursos implantados, ele precisa saber onde eles estão. Para um website, isso é fornecido por seu runtime-config.json (veja Local Runtime Config), que você carrega de uma aplicação implantada. Para projetos do lado do servidor (APIs e agents) que leem Runtime Configuration, defina a variável de ambiente RUNTIME_CONFIG_APP_ID para apontar para sua aplicação AppConfig implantada.

Diagram

Use serve quando você quiser iterar em um único projeto contra as versões “reais” implantadas de tudo de que ele depende.

O target dev executa o projeto alvo e todos os projetos conectados a ele transitivamente, todos em sua máquina. O gerador de conexão configura isso automaticamente — executar dev no website também inicia servidores locais para a api, o agent e o servidor mcp que ele alcança através do agent.

Terminal window
pnpm nx dev website

Quando executado dessa forma, o runtime-config.json do website é automaticamente sobrescrito (via MODE do Vite, definido como local-dev) para que aponte para seus servidores em execução local em vez de URLs implantadas.

Diagram

Todos os projetos são executados localmente, portanto não há dependências implantadas.

Use serve-local quando você estiver trabalhando em vários projetos conectados ao mesmo tempo e quiser iterar rapidamente sem implantar sua infraestrutura.

dev é o comando canônico para desenvolvimento local. Todo projeto com um target serve-local expõe um target dev como um alias para ele, então você pode iniciar um projeto (e tudo conectado a ele) com:

Terminal window
pnpm nx dev website

Prefira dev em vez de serve-local — é mais curto, consistente em todos os tipos de projeto e, para projetos com múltiplos componentes, inicia todos eles (veja abaixo). serve-local permanece disponível se você precisar direcionar um único componente.

Alguns tipos de projeto podem conter múltiplos componentes em um único projeto (por exemplo, um projeto TypeScript ou Python contendo vários agents e servidores MCP). Para estes:

  • Cada componente expõe um alias <component-name>-dev para seu target <component-name>-serve-local, então você pode executar um único componente por conta própria:
Terminal window
pnpm nx run my-project:my-component-dev
  • O target dev no nível do projeto inicia todos os componentes do projeto juntos. Cada componente é adicionado ao dev conforme é gerado:
Terminal window
pnpm nx dev my-project

Como o Nx identifica tarefas por project:target, qualquer target serve-local compartilhado entre componentes (como um servidor MCP comum conectado a dois agents) é executado exatamente uma vez quando você inicia dev.

Para mais detalhes sobre o servidor de desenvolvimento local de cada tipo de projeto, consulte o guia relevante — por exemplo, o guia React Website.