Aller au contenu

Développement Local

Les projets connectés exposent deux cibles pour les exécuter sur votre machine : serve et dev. La différence réside dans la portée — quelle partie de votre application s’exécute localement par rapport à celle qui pointe vers l’infrastructure AWS déployée.

Considérez un espace de travail avec les connexions suivantes : un site web qui appelle une api tRPC, et qui appelle également un agent qui à son tour appelle un serveur mcp.

La cible serve exécute uniquement le projet ciblé localement. Tous les autres projets auxquels il se connecte sont censés être déployés, et sont accessibles à leur URL AWS réelle.

Terminal window
pnpm nx serve website

Étant donné que le projet ciblé communique avec des ressources déployées, il doit savoir où elles se trouvent. Pour un site web, cela est fourni par son runtime-config.json (voir Local Runtime Config), que vous chargez depuis une application déployée. Pour les projets côté serveur (API et agents) qui lisent la Runtime Configuration, définissez la variable d’environnement RUNTIME_CONFIG_APP_ID pour pointer vers votre application AppConfig déployée.

Diagram

Utilisez serve lorsque vous souhaitez itérer sur un seul projet par rapport aux versions « réelles » déployées de tout ce dont il dépend.

La cible dev exécute le projet ciblé et tous les projets qui y sont connectés de manière transitive, tous sur votre machine. Le générateur de connexion configure cela automatiquement — l’exécution de dev sur le site web démarre également des serveurs locaux pour l’api, l’agent et le serveur mcp qu’il atteint via l’agent.

Terminal window
pnpm nx dev website

Lorsqu’il est exécuté de cette manière, le runtime-config.json du site web est automatiquement remplacé (via le MODE de Vite, défini sur local-dev) de sorte qu’il pointe vers vos serveurs s’exécutant localement au lieu des URL déployées.

Diagram

Tous les projets s’exécutent localement, il n’y a donc pas de dépendances déployées.

Utilisez dev lorsque vous travaillez sur plusieurs projets connectés à la fois et que vous souhaitez itérer rapidement sans déployer votre infrastructure.

Certains types de projets peuvent contenir plusieurs composants dans un seul projet (par exemple un projet TypeScript ou Python contenant plusieurs agents et serveurs MCP). Pour ceux-ci :

  • La cible dev au niveau du projet démarre tous les composants du projet ensemble. Chaque composant est ajouté à dev au fur et à mesure qu’il est généré :
Terminal window
pnpm nx dev my-project
  • Chaque composant expose également une cible <component-name>-dev, vous pouvez donc exécuter un seul composant seul :
Terminal window
pnpm nx my-component-dev my-project

Pour plus de détails sur le serveur de développement local de chaque type de projet, consultez le guide correspondant — par exemple le guide React Website.