Salta ai contenuti

TypeScript Nx Plugin

Genera un Nx Plugin TypeScript completo con un server Model Context Protocol (MCP) integrato. Questo generatore crea una base per costruire generatori personalizzati che possono essere utilizzati senza problemi dagli assistenti AI per la generazione automatica di codice e lo scaffolding di progetti.

Puoi generare un TypeScript Nx Plugin in due modi:

Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-plugin
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-plugin --dry-run
ParametroTipoPredefinitoDescrizione
name Obbligatoriostring-Nome del progetto TypeScript
directory stringpackagesDirectory principale dove viene posizionata la libreria.
subDirectory string-La sotto-directory in cui viene posizionata la libreria. Per impostazione predefinita corrisponde al nome della libreria.
preferInstallDependencies booleantrueSe preferire l'installazione delle dipendenze dopo l'esecuzione del generatore. Impostare su false per rimandare l'installazione quando si eseguono più generatori in batch (l'installazione viene comunque eseguita se necessaria affinché i generatori successivi possano calcolare il grafo dei progetti Nx); installare una volta alla fine.

Il generatore creerà la seguente struttura di progetto:

  • Directoryyour-plugin/
    • Directorysrc/
      • index.ts Empty entry point for your plugin
      • Directorymcp-server/
        • index.ts Exports your server
        • server.ts Main MCP server configuration
        • stdio.ts Entry point for your MCP server with STDIO transport
        • http.ts Entry point for your MCP server with Streamable HTTP transport
        • Directorytools/
          • create-workspace-command.ts Tool for workspace creation guidance
          • general-guidance.ts Tool for general Nx and plugin guidance
          • list-generators.ts Tool to list available generators
          • generator-guide.ts Tool for detailed generator information
        • utils.ts Utility functions for the MCP server
    • generators.json Nx generator configuration (initially empty)
    • package.json Plugin package configuration
    • tsconfig.json TypeScript configuration (CommonJS for Nx compatibility)
    • project.json Nx project configuration with build and package targets

Una volta che hai il tuo progetto plugin, puoi aggiungere generatori utilizzando il generatore ts#nx-generator:

Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-generator --project=your-plugin
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g @aws/nx-plugin:ts#nx-generator --project=your-plugin --dry-run

Questo aggiungerà un nuovo generatore al tuo plugin.

Assicurati di scrivere un README.md dettagliato per il tuo generatore, poiché questo viene utilizzato dallo strumento generator-guide del MCP Server.

Il plugin generato include diversi target importanti:

Compila il tuo codice TypeScript e prepara il plugin per l’uso:

Terminal window
pnpm nx build your-plugin

Crea un package distribuibile pronto per la pubblicazione su NPM:

Terminal window
pnpm nx package your-plugin

Il target package include tutte le risorse necessarie:

  • File JavaScript compilati
  • File di dichiarazione TypeScript
  • File di configurazione per generatori ed executor
  • Documentazione e file di licenza

Il plugin configura un server MCP utilizzando il generatore ts#mcp-server.

Il plugin include un server MCP completo che fornisce agli assistenti AI i seguenti strumenti:

  • general-guidance: Ottieni le best practice per lavorare con Nx e il tuo plugin
  • create-workspace-command: Scopri come creare nuovi workspace che possono utilizzare il tuo plugin
  • list-generators: Elenca tutti i generatori disponibili nel tuo plugin
  • generator-guide: Ottieni informazioni dettagliate su generatori specifici inclusi schemi e utilizzo

La maggior parte degli assistenti AI che supportano MCP utilizza un approccio di configurazione simile. Dovrai creare o aggiornare un file di configurazione con i dettagli del tuo server MCP:

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

Durante lo sviluppo del tuo server MCP, potresti voler configurare il flag --watch in modo che l’assistente AI veda sempre le versioni più recenti di strumenti/risorse:

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

Si prega di fare riferimento alla seguente documentazione per configurare MCP con specifici Assistenti AI:

Puoi estendere il server MCP modificando server.ts per aggiungere strumenti o risorse aggiuntive specifiche per il dominio del tuo plugin.

Per maggiori dettagli sulla scrittura di MCP Server, consulta la guida ts#mcp-server.

  1. Aggiorna le Informazioni del Pacchetto: Modifica il package.json del tuo plugin con nome, versione, descrizione e informazioni sul repository appropriati.

  2. Costruisci il Pacchetto:

    Terminal window
    pnpm nx package your-plugin
  3. Testa Localmente: Puoi testare il tuo plugin localmente installandolo in un altro workspace:

    Terminal window
    npm install /path/to/your/workspace/dist/your-plugin/package

Una volta che il tuo plugin è pronto:

Terminal window
cd dist/your-plugin/package
npm publish

Dopo la pubblicazione, altri possono installare e utilizzare il tuo plugin:

Terminal window
pnpm add -w your-plugin-name

Quindi utilizzare i tuoi generatori:

Terminal window
pnpm nx g your-plugin-name:your-generator-name
Puoi anche eseguire una prova per vedere quali file verrebbero modificati
Terminal window
pnpm nx g your-plugin-name:your-generator-name --dry-run

Configurare Assistenti AI con il Tuo Plugin Pubblicato

Sezione intitolata “Configurare Assistenti AI con il Tuo Plugin Pubblicato”

Il server MCP del tuo plugin pubblicato può essere configurato come segue:

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