Plugin TypeScript Nx
Genera un completo Nx Plugin TypeScript con un server integrato Model Context Protocol (MCP). Questo generatore crea una base per sviluppare generatori personalizzati che possono essere utilizzati in modo fluido da assistenti AI per la generazione automatica di codice e l’impalcatura di progetti.
Utilizzo
Sezione intitolata “Utilizzo”Generare un Nx Plugin
Sezione intitolata “Generare un Nx Plugin”Puoi generare un Nx Plugin TypeScript in due modi:
- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#nx-plugin - Compila i parametri richiesti
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#nx-pluginyarn nx g @aws/nx-plugin:ts#nx-pluginnpx nx g @aws/nx-plugin:ts#nx-pluginbunx nx g @aws/nx-plugin:ts#nx-pluginPuoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#nx-plugin --dry-runyarn nx g @aws/nx-plugin:ts#nx-plugin --dry-runnpx nx g @aws/nx-plugin:ts#nx-plugin --dry-runbunx nx g @aws/nx-plugin:ts#nx-plugin --dry-runOpzioni
Sezione intitolata “Opzioni”| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| name Obbligatorio | 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. |
Output del Generatore
Sezione intitolata “Output del Generatore”Il generatore creerà la seguente struttura del progetto:
Directoryyour-plugin/
Directorysrc/
- index.ts Punto d’ingresso vuoto per il tuo plugin
Directorymcp-server/
- index.ts Esporta il tuo server
- server.ts Configurazione principale del server MCP
- stdio.ts Punto d’ingresso per il server MCP con trasporto STDIO
- http.ts Punto d’ingresso per il server MCP con trasporto HTTP streamable
Directorytools/
- create-workspace-command.ts Strumento per la creazione guidata di workspace
- general-guidance.ts Strumento per linee guida generali su Nx e plugin
- list-generators.ts Strumento per elencare i generatori disponibili
- generator-guide.ts Strumento per informazioni dettagliate sui generatori
- utils.ts Funzioni di utilità per il server MCP
- generators.json Configurazione del generatore Nx (inizialmente vuota)
- package.json Configurazione del package del plugin con binary del server MCP
- tsconfig.json Configurazione TypeScript (CommonJS per compatibilità Nx)
- project.json Configurazione del progetto Nx con target di build e package
Lavorare con il Tuo Nx Plugin
Sezione intitolata “Lavorare con il Tuo Nx Plugin”Aggiungere Generatori
Sezione intitolata “Aggiungere Generatori”Dopo aver creato il progetto del plugin, puoi aggiungere generatori usando ts#nx-generator:
- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#nx-generator - Compila i parametri richiesti
- pluginProject: your-plugin
- Clicca su
Generate
pnpm nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-pluginyarn nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-pluginnpx nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-pluginbunx nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-pluginPuoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-plugin --dry-runyarn nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-plugin --dry-runnpx nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-plugin --dry-runbunx nx g @aws/nx-plugin:ts#nx-generator --pluginProject=your-plugin --dry-runQuesto aggiungerà un nuovo generatore al tuo plugin.
Assicurati di scrivere un dettagliato README.md per il tuo generatore, poiché viene utilizzato dallo strumento generator-guide del server MCP.
Target del Progetto
Sezione intitolata “Target del Progetto”Il plugin generato include diversi target importanti:
Target Build
Sezione intitolata “Target Build”Compila il codice TypeScript e prepara il plugin per l’uso:
pnpm nx build your-pluginyarn nx build your-pluginnpx nx build your-pluginbunx nx build your-pluginTarget Package
Sezione intitolata “Target Package”Crea un package distribuibile pronto per la pubblicazione su NPM:
pnpm nx package your-pluginyarn nx package your-pluginnpx nx package your-pluginbunx nx package your-pluginIl 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
Integrazione Server MCP
Sezione intitolata “Integrazione Server MCP”Il plugin configura un server MCP usando il generatore ts#mcp-server.
Strumenti
Sezione intitolata “Strumenti”Il plugin include un server MCP completo che fornisce ai assistenti AI i seguenti strumenti:
general-guidance: Ottieni best practice per lavorare con Nx e il tuo plugincreate-workspace-command: Impara a creare nuovi workspace che possono utilizzare il tuo pluginlist-generators: Elenca tutti i generatori disponibili nel tuo plugingenerator-guide: Ottieni informazioni dettagliate su generatori specifici inclusi schemi e utilizzo
Configurazione con Assistanti AI
Sezione intitolata “Configurazione con Assistanti AI”File di configurazione
Sezione intitolata “File di configurazione”La maggior parte degli assistenti AI che supportano MCP utilizza un approccio simile per la configurazione. È necessario creare o aggiornare un file di configurazione con i dettagli del server MCP:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "/path/to/your-mcp-server/stdio.ts"] } }}Se ricevi un errore come ENOENT npx durante la connessione al server, potrebbe essere necessario specificare il percorso completo di npx, ottenibile eseguendo which npx nel terminale.
Ricaricamento a caldo (Hot Reload)
Sezione intitolata “Ricaricamento a caldo (Hot Reload)”Durante lo sviluppo del server MCP, puoi configurare il flag --watch per far sì che l’assistente AI rilevi sempre le versioni più recenti di strumenti/risorse:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "--watch", "/path/to/your-mcp-server/stdio.ts"] } }}Se aggiungi nuovi strumenti o risorse, potrebbe essere necessario aggiornare il server MCP nell’assistente AI.
Configurazione specifica per l’assistente
Sezione intitolata “Configurazione specifica per l’assistente”Consulta la seguente documentazione per configurare MCP con assistenti AI specifici:
Alcuni assistenti AI, come Amazon Q Developer, permettono di specificare configurazioni MCP a livello di workspace, particolarmente utili per definire i server MCP rilevanti per un progetto specifico.
Personalizzazione del Server MCP
Sezione intitolata “Personalizzazione del Server MCP”Puoi estendere il server MCP modificando server.ts per aggiungere strumenti o risorse specifiche per il dominio del tuo plugin.
Per maggiori dettagli sulla scrittura di server MCP, consulta la guida ts#mcp-server.
Pubblicazione del Plugin
Sezione intitolata “Pubblicazione del Plugin”Preparazione alla Pubblicazione
Sezione intitolata “Preparazione alla Pubblicazione”-
Aggiorna Informazioni del Package: Modifica il
package.jsondel tuo plugin con nome, versione, descrizione e informazioni del repository corrette. -
Costruisci il Package:
Terminal window pnpm nx package your-pluginTerminal window yarn nx package your-pluginTerminal window npx nx package your-pluginTerminal window bunx nx package your-plugin -
Test Locale: Puoi testare il plugin localmente installandolo in un altro workspace:
Terminal window npm install /path/to/your/workspace/dist/your-plugin/package
Pubblicazione su NPM
Sezione intitolata “Pubblicazione su NPM”Quando il tuo plugin è pronto:
cd dist/your-plugin/packagenpm publishUtilizzo dei Plugin Pubblicati
Sezione intitolata “Utilizzo dei Plugin Pubblicati”Dopo la pubblicazione, altri possono installare e usare il tuo plugin:
pnpm add -w your-plugin-nameyarn add your-plugin-namenpm install --legacy-peer-deps your-plugin-namebun install your-plugin-namePoi utilizza i tuoi generatori:
- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)nella sezione "Common Nx Commands" - Cerca
your-plugin-name - your-generator-name - Compila i parametri richiesti
- Clicca su
Generate
pnpm nx g your-plugin-name:your-generator-nameyarn nx g your-plugin-name:your-generator-namenpx nx g your-plugin-name:your-generator-namebunx nx g your-plugin-name:your-generator-namePuoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g your-plugin-name:your-generator-name --dry-runyarn nx g your-plugin-name:your-generator-name --dry-runnpx nx g your-plugin-name:your-generator-name --dry-runbunx nx g your-plugin-name:your-generator-name --dry-runConfigura Assistanti AI con il Tuo Plugin Pubblicato
Sezione intitolata “Configura Assistanti AI con il Tuo Plugin Pubblicato”Il server MCP del tuo plugin pubblicato può essere configurato così:
{ "mcpServers": { "aws-nx-mcp": { "command": "npx", "args": ["-y", "-p", "your-plugin-name", "your-plugin-name-mcp-server"] } }}