Ir al contenido

Desarrollo Local

Los proyectos conectados exponen dos targets para ejecutarlos en tu máquina: serve y serve-local. La diferencia es de alcance — cuánto de tu aplicación se ejecuta localmente versus apuntando a la infraestructura de AWS desplegada.

Considera un espacio de trabajo con las siguientes conexiones: un sitio web que llama a una api tRPC, y también llama a un agent que a su vez llama a un servidor mcp.

El target serve ejecuta solo el proyecto objetivo localmente. Se espera que todos los demás proyectos a los que se conecta estén desplegados, y se accede a ellos en su URL real de AWS.

Terminal window
pnpm nx serve website

Debido a que el proyecto objetivo se comunica con recursos desplegados, necesita saber dónde están. Para un sitio web, esto se proporciona mediante su runtime-config.json (consulta Local Runtime Config), que cargas desde una aplicación desplegada. Para proyectos del lado del servidor (APIs y agentes) que leen Runtime Configuration, establece la variable de entorno RUNTIME_CONFIG_APP_ID para que apunte a tu aplicación AppConfig desplegada.

Diagram

Usa serve cuando quieras iterar en un solo proyecto contra las versiones “reales” desplegadas de todo aquello de lo que depende.

El target dev ejecuta el proyecto objetivo y cada proyecto conectado a él de forma transitiva, todo en tu máquina. El generador de conexiones configura esto automáticamente — ejecutar dev en el sitio web también inicia servidores locales para la api, el agent y el servidor mcp al que accede a través del agente.

Terminal window
pnpm nx dev website

Cuando se ejecuta de esta manera, el runtime-config.json del sitio web se anula automáticamente (a través del MODE de Vite, establecido en local-dev) para que apunte a tus servidores que se ejecutan localmente en lugar de URLs desplegadas.

Diagram

Todos los proyectos se ejecutan localmente, por lo que no hay dependencias desplegadas.

Usa serve-local cuando estés trabajando en varios proyectos conectados a la vez y quieras iterar rápidamente sin desplegar tu infraestructura.

dev es el comando canónico para el desarrollo local. Cada proyecto con un target serve-local expone un target dev como alias para él, por lo que puedes iniciar un proyecto (y todo lo conectado a él) con:

Terminal window
pnpm nx dev website

Prefiere dev sobre serve-local — es más corto, consistente en todos los tipos de proyectos, y para proyectos con múltiples componentes los inicia todos (ver más abajo). serve-local permanece disponible si necesitas apuntar a un solo componente.

Algunos tipos de proyectos pueden contener múltiples componentes en un solo proyecto (por ejemplo, un proyecto TypeScript o Python que contiene varios agentes y servidores MCP). Para estos:

  • Cada componente expone un alias <component-name>-dev para su target <component-name>-serve-local, por lo que puedes ejecutar un solo componente por sí solo:
Terminal window
pnpm nx run my-project:my-component-dev
  • El target dev a nivel de proyecto inicia todos los componentes del proyecto juntos. Cada componente se agrega a dev a medida que se genera:
Terminal window
pnpm nx dev my-project

Debido a que Nx identifica las tareas por project:target, cualquier target serve-local compartido entre componentes (como un servidor MCP común conectado a dos agentes) se ejecuta exactamente una vez cuando inicias dev.

Para más detalles sobre el servidor de desarrollo local de cada tipo de proyecto, consulta la guía relevante — por ejemplo, la guía de React Website.