Aller au contenu

Plugin TypeScript Nx

Générez un plugin Nx TypeScript complet avec un serveur Model Context Protocol (MCP) intégré. Ce générateur crée une base pour développer des générateurs personnalisés qui peuvent être utilisés de manière transparente par des assistants IA pour la génération automatisée de code et l’échafaudage de projets.

Vous pouvez générer un plugin Nx TypeScript de deux manières :

  1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
  2. Ouvrez la console Nx dans VSCode
  3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
  4. Recherchez @aws/nx-plugin - ts#nx-plugin
  5. Remplissez les paramètres requis
    • Cliquez sur Generate
    Paramètre Type Par défaut Description
    name Requis string - TypeScript project name
    directory string packages Parent directory where the library is placed.
    subDirectory string - The sub directory the lib is placed in. By default this is the library name.

    Le générateur créera la structure de projet suivante :

    • Répertoireyour-plugin/
      • Répertoiresrc/
        • index.ts Point d’entrée vide pour votre plugin
        • Répertoiremcp-server/
          • index.ts Point d’entrée du serveur MCP
          • server.ts Configuration principale du serveur MCP
          • Répertoiretools/
            • create-workspace-command.ts Outil de guidage pour la création d’espace de travail
            • general-guidance.ts Outil de conseils généraux sur Nx et le plugin
            • list-generators.ts Outil pour lister les générateurs disponibles
            • generator-guide.ts Outil d’information détaillée sur les générateurs
          • utils.ts Fonctions utilitaires pour le serveur MCP
      • generators.json Configuration des générateurs Nx (vide initialement)
      • package.json Configuration du package du plugin avec le binaire du serveur MCP
      • tsconfig.json Configuration TypeScript (CommonJS pour compatibilité Nx)
      • project.json Configuration du projet Nx avec les cibles de build et de packaging

    Une fois votre projet de plugin créé, vous pouvez ajouter des générateurs en utilisant le générateur ts#nx-generator :

    1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
    2. Ouvrez la console Nx dans VSCode
    3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
    4. Recherchez @aws/nx-plugin - ts#nx-generator
    5. Remplissez les paramètres requis
      • pluginProject: your-plugin
    6. Cliquez sur Generate

    Ceci ajoutera un nouveau générateur à votre plugin.

    Assurez-vous de rédiger un README.md détaillé pour votre générateur, car il est utilisé par l’outil generator-guide du serveur MCP.

    Le plugin généré inclut plusieurs cibles importantes :

    Compile votre code TypeScript et prépare le plugin à l’utilisation :

    Terminal window
    pnpm nx build your-plugin

    Crée un package distribuable prêt pour la publication sur NPM :

    Terminal window
    pnpm nx package your-plugin

    Le package inclut toutes les ressources nécessaires :

    • Fichiers JavaScript compilés
    • Fichiers de déclaration TypeScript
    • Fichiers de configuration des générateurs et exécuteurs
    • Documentation et fichiers de licence

    Le plugin configure un serveur MCP en utilisant le générateur ts#mcp-server.

    Le plugin inclut un serveur MCP complet qui fournit aux assistants IA les outils suivants :

    • general-guidance : Obtenez les meilleures pratiques pour utiliser Nx et votre plugin
    • create-workspace-command : Apprenez à créer de nouveaux espaces de travail compatibles avec votre plugin
    • list-generators : Listez tous les générateurs disponibles dans votre plugin
    • generator-guide : Obtenez des informations détaillées sur des générateurs spécifiques (schémas et utilisation)

    La plupart des assistants IA compatibles avec MCP utilisent une approche de configuration similaire. Vous devrez créer ou mettre à jour un fichier de configuration avec les détails de votre serveur MCP :

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    Pendant le développement de votre serveur MCP, vous pouvez configurer le flag --watch pour que l’assistant IA voit toujours les dernières versions des outils/ressources :

    {
    "mcpServers": {
    "your-mcp-server": {
    "command": "npx",
    "args": ["tsx", "--watch", "/path/to/your-mcp-server/index.ts"]
    }
    }
    }

    Consultez la documentation suivante pour configurer MCP avec des assistants IA spécifiques :

    Vous pouvez étendre le serveur MCP en modifiant server.ts pour ajouter des outils ou ressources spécifiques à votre domaine.

    Pour plus de détails sur l’écriture de serveurs MCP, consultez le guide ts#mcp-server.

    1. Mettez à jour les informations du package : Modifiez le package.json de votre plugin avec le nom, la version, la description et les informations du dépôt.

    2. Build du package :

      Terminal window
      pnpm nx package your-plugin
    3. Test local : Vous pouvez tester votre plugin localement en l’installant dans un autre espace de travail :

      Fenêtre de terminal
      npm install /path/to/your/workspace/dist/your-plugin/package

    Une fois votre plugin prêt :

    Fenêtre de terminal
    cd dist/your-plugin/package
    npm publish

    Après publication, les utilisateurs peuvent installer et utiliser votre plugin :

    Terminal window
    pnpm add -w your-plugin-name

    Puis utilisez vos générateurs :

    1. Installez le Nx Console VSCode Plugin si ce n'est pas déjà fait
    2. Ouvrez la console Nx dans VSCode
    3. Cliquez sur Generate (UI) dans la section "Common Nx Commands"
    4. Recherchez your-plugin-name - your-generator-name
    5. Remplissez les paramètres requis
      • Cliquez sur Generate

      Configuration des assistants IA avec votre plugin publié

      Section intitulée « Configuration des assistants IA avec votre plugin publié »

      Le serveur MCP de votre plugin publié peut être configuré ainsi :

      {
      "mcpServers": {
      "aws-nx-mcp": {
      "command": "npx",
      "args": ["-y", "-p", "your-plugin-name", "your-plugin-name-mcp-server"]
      }
      }
      }