TypeScript Nx 插件
生成一个完整的 TypeScript Nx 插件,并集成模型上下文协议(MCP)服务器。该生成器为构建自定义生成器提供了基础,可被 AI 助手无缝用于自动化代码生成和项目脚手架。
生成 Nx 插件
Section titled “生成 Nx 插件”您可以通过两种方式生成 TypeScript Nx 插件:
- 安装 Nx Console VSCode Plugin 如果您尚未安装
- 在VSCode中打开Nx控制台
- 点击
Generate (UI)在"Common Nx Commands"部分 - 搜索
@aws/nx-plugin - ts#nx-plugin - 填写必需参数
- 点击
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-plugin| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| name 必需 | 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. |
生成器将创建以下项目结构:
文件夹your-plugin/
文件夹src/
- index.ts 插件入口文件
文件夹mcp-server/
- index.ts 服务器导出文件
- server.ts MCP 服务器主配置
- stdio.ts 使用 STDIO 传输的 MCP 服务器入口
- http.ts 使用可流式 HTTP 传输的 MCP 服务器入口
文件夹tools/
- create-workspace-command.ts 工作区创建指导工具
- general-guidance.ts Nx 和插件通用指导工具
- list-generators.ts 生成器列表工具
- generator-guide.ts 生成器详细信息工具
- utils.ts MCP 服务器工具函数
- generators.json Nx 生成器配置(初始为空)
- package.json 插件包配置(含 MCP 服务器二进制)
- tsconfig.json TypeScript 配置(兼容 Nx 的 CommonJS)
- project.json Nx 项目配置(含构建和打包目标)
开发 Nx 插件
Section titled “开发 Nx 插件”创建插件项目后,可使用 ts#nx-generator 生成器添加新生成器:
- 安装 Nx Console VSCode Plugin 如果您尚未安装
- 在VSCode中打开Nx控制台
- 点击
Generate (UI)在"Common Nx Commands"部分 - 搜索
@aws/nx-plugin - ts#nx-generator - 填写必需参数
- pluginProject: your-plugin
- 点击
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-plugin您还可以执行试运行以查看哪些文件会被更改
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-run这将在您的插件中添加新生成器。
请确保为生成器编写详细的 README.md 文件,该文件将被 MCP 服务器的 generator-guide 工具使用。
生成的插件包含多个重要目标:
编译 TypeScript 代码并准备插件使用:
pnpm nx build your-pluginyarn nx build your-pluginnpx nx build your-pluginbunx nx build your-plugin创建可发布的 NPM 包:
pnpm nx package your-pluginyarn nx package your-pluginnpx nx package your-pluginbunx nx package your-plugin打包目标包含所有必要资源:
- 编译后的 JavaScript 文件
- TypeScript 声明文件
- 生成器和执行器配置文件
- 文档和许可证文件
MCP 服务器集成
Section titled “MCP 服务器集成”插件使用 ts#mcp-server 生成器配置 MCP 服务器。
插件包含完整的 MCP 服务器,为 AI 助手提供以下工具:
general-guidance: 获取 Nx 和插件的最佳实践create-workspace-command: 学习如何创建支持插件的新工作区list-generators: 列出插件中所有可用生成器generator-guide: 获取生成器详细信息(含模式和使用说明)
配置 AI 助手
Section titled “配置 AI 助手”大多数支持 MCP 的 AI 助手都采用相似的配置方式。您需要创建或更新包含 MCP 服务器详细信息的配置文件:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "/path/to/your-mcp-server/stdio.ts"] } }}在开发 MCP 服务器时,建议配置 --watch 参数以确保 AI 助手始终获取工具/资源的最新版本:
{ "mcpServers": { "your-mcp-server": { "command": "npx", "args": ["tsx", "--watch", "/path/to/your-mcp-server/stdio.ts"] } }}特定助手配置
Section titled “特定助手配置”请参考以下文档配置不同 AI 助手的 MCP 设置:
自定义 MCP 服务器
Section titled “自定义 MCP 服务器”可通过修改 server.ts 来扩展 MCP 服务器,添加与插件领域相关的额外工具或资源。
有关编写 MCP 服务器的详细信息,请参考 ts#mcp-server 指南。
-
更新包信息: 在
package.json中更新名称、版本、描述和仓库信息 -
构建包:
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 -
本地测试: 可在其他工作区中安装插件进行测试:
Terminal window npm install /path/to/your/workspace/dist/your-plugin/package
发布到 NPM
Section titled “发布到 NPM”准备就绪后执行:
cd dist/your-plugin/packagenpm publish使用已发布插件
Section titled “使用已发布插件”用户安装后即可使用:
pnpm add -w your-plugin-nameyarn add your-plugin-namenpm install --legacy-peer-deps your-plugin-namebun install your-plugin-name使用生成器:
- 安装 Nx Console VSCode Plugin 如果您尚未安装
- 在VSCode中打开Nx控制台
- 点击
Generate (UI)在"Common Nx Commands"部分 - 搜索
your-plugin-name - your-generator-name - 填写必需参数
- 点击
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-name您还可以执行试运行以查看哪些文件会被更改
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-run为 AI 助手配置已发布插件
Section titled “为 AI 助手配置已发布插件”已发布插件的 MCP 服务器可配置如下:
{ "mcpServers": { "aws-nx-mcp": { "command": "npx", "args": ["-y", "-p", "your-plugin-name", "your-plugin-name-mcp-server"] } }}