跳转到内容

概念

@aws/nx-plugin 是一个 Nx 插件,提供了在 AWS 上构建和部署全栈应用程序的工具包。它为您提供了一系列生成器,可以生成最佳实践的应用程序代码_以及_部署它所需的基础设施——类型安全、可本地运行且从一开始就可部署,让您更接近生产环境。

您(或您的 AI 代理)无需从空白页面开始,只需选择所需的组件——API、网站、身份验证、AI 代理、基础设施——提供一些配置选项,插件就会生成最佳实践的起始代码。它甚至会为您连接项目(包括通过 AST 转换更新现有文件),在前端和后端之间生成类型安全的客户端。

Nx 是一个用于管理 monorepo 的智能构建框架。它与语言无关,让 TypeScript、Python、基础设施等可以在单个工作空间中共存和构建。其构建系统使用缓存和依赖图分析,仅重建已更改的内容并并行运行任务,使测试、代码检查和构建在工作空间增长时保持快速。

@aws/nx-plugin 中的每个功能都作为 Nx 生成器提供——自动化脚手架,从预定义模板生成一致的代码结构。生成器可以通过 Nx CLINx Console IDE 插件或您的 AI 助手通过 Nx Plugin for AWS MCP Server 调用。

因为每个组件都是一个生成器,所以您只需在需要时添加所需的内容。从 API 开始,稍后添加网站,准备好时连接它们——每一步都是一个命令。

@aws/nx-plugin 刻意避免在您已经熟悉的工具之上构建自定义抽象。它不是发明定制的框架、运行时或包装器,而是使用已建立的、广泛采用的开源项目来生成惯用代码。这意味着您现有的技能可以直接应用,您可以依赖每个框架的官方文档,并且您永远不会被锁定在只有此插件才能理解的层中。

生成的代码建立在一流框架的基础上,包括:

插件的价值在于如何为 AWS 配置和连接这些组件——而不是替换它们。

所有生成的代码都是_您的_代码。@aws/nx-plugin 是一个构建时工具,而不是运行时依赖——一旦生成器运行完成,插件就不再参与其中。您可以阅读它生成的每个文件,提交它,并随意更改它。

这意味着:

  • 无需逃生舱口。 当您需要做生成器未预料到的事情时,没有专有的配置界面需要学习或处理。您直接编辑生成的代码,就像编辑自己编写的任何代码一样。
  • 无新的抽象层。 生成器为底层框架生成简单、惯用的代码。在您和 React、tRPC、FastAPI、CDK 或任何其他工具之间没有包装器 API 或魔术间接层——您看到的就是运行的。
  • 插件不是依赖项。 它生成代码然后退出。您的应用程序在运行时不会导入或依赖 @aws/nx-plugin,因此您永远不会被它阻塞,也永远不会被锁定。

如果您不喜欢生成代码中的某些内容,可以自由修改它。生成器为您提供了一个良好的开端,而不是一个牢笼。

拥有代码通常是有代价的:一旦您开始编辑脚手架,您就与上游的修复和改进脱节了。再次采用它们意味着阅读变更日志、重新生成并手动协调差异。迁移@aws/nx-plugin 防止这种情况发生的方式。

版本发布时会附带迁移,旨在使早期生成器生成的代码与我们此后所做的改进保持同步。当我们修复错误、加强安全默认值或改进生成的模式时,运行 nx migrate 会将该更改应用到您的代码中——而不是让您在变更日志中发现它并自己移植它。

实际上:

  • 升级是自动化的,而不是重新采用的练习。 几个月前生成的工作空间可以随插件一起前进,而不是与它越来越远。
  • 自定义是模式匹配的,而不是被覆盖的。 迁移会检查文件是否仍与生成器生成的形状匹配。如果它已经偏离到无法安全更新的程度,它们会保留您的代码并报告需要手动跟进的内容。
  • 某些更改以代理提示的形式到达。 当正确的编辑取决于您构建的内容时,迁移是您的 AI 编码代理应用的提示,而不是代码修改。
  • 升级是可选的。 在您选择运行 nx migrate 之前,工作空间中不会发生任何更改。

迁移缩小了差距而不是消除它:您的代码移动了多远决定了它们能做多少,有些步骤仍然需要您亲自动手。

@aws/nx-plugin 努力将全局依赖项的数量保持在最低限度。您开始所需的内容取决于您调用的生成器。

例如,任何基于 TypeScript 的生成器只需要安装 Node。对于基于 Python 的项目,UV 是唯一的要求。

@aws/nx-plugin 采用类型安全来通过 IDE 补全简化开发者体验,同时消除在非类型安全实现中只会在运行时出现的错误。因此,所有提供的组件默认都是类型安全的。

类型安全跨越项目边界:当您将网站连接到 API 时,生成的客户端与后端共享类型,因此对 API 契约的更改会在前端显示为编译时错误,而不是生产中的错误。放心重构。