Pular para o conteúdo

Conceitos

O @aws/nx-plugin é um plugin do Nx que fornece um conjunto de ferramentas para construir e implantar aplicações full-stack na AWS. Ele oferece uma coleção de Geradores que criam código de aplicação pronto para produção e a infraestrutura para implantá-lo — type-safe, executável localmente e pronto para entrega.

Em vez de começar de uma página em branco, você (ou seu agente de IA) escolhe os componentes necessários — APIs, websites, autenticação, agentes de IA, infraestrutura — fornece algumas opções de configuração, e o plugin gera código inicial seguindo as melhores práticas. Ele até conecta projetos entre si (incluindo atualização de arquivos existentes via transformações AST) para produzir clientes type-safe entre seu frontend e backend.

O Nx é um framework de build inteligente para gerenciar monorepos. Ele é agnóstico de linguagem, permitindo que TypeScript, Python, infraestrutura e mais coexistam e sejam construídos juntos em um único workspace. Seu sistema de build usa cache e análise de grafo de dependências para reconstruir apenas o que mudou e executar tarefas em paralelo, mantendo testes, linting e builds rápidos conforme seu workspace cresce.

Cada funcionalidade do @aws/nx-plugin é entregue como um Gerador do Nx — scaffolding automatizado que produz estruturas de código consistentes a partir de templates predefinidos. Geradores podem ser invocados via CLI do Nx, o plugin IDE Nx Console, ou pelo seu assistente de IA através do Nx Plugin for AWS MCP Server.

Como cada componente é um gerador, você adiciona apenas o que precisa, quando precisa. Comece com uma API, adicione um website depois, conecte-os quando estiver pronto — cada passo é um único comando.

O @aws/nx-plugin deliberadamente evita construir abstrações customizadas sobre as ferramentas que você já conhece. Em vez de inventar frameworks, runtimes ou wrappers personalizados, ele cria código idiomático usando projetos open-source estabelecidos e amplamente adotados. Isso significa que suas habilidades existentes se transferem diretamente, você pode confiar na documentação oficial de cada framework, e você nunca fica preso em uma camada que apenas este plugin entende.

O código gerado se apoia em frameworks de primeira classe, incluindo:

O valor do plugin está em como essas peças são configuradas e conectadas para AWS — não em substituí-las.

Todo código gerado é seu código. O @aws/nx-plugin é uma ferramenta de build-time, não uma dependência de runtime — uma vez que um gerador foi executado, o plugin não está mais na jogada. Você pode ler cada arquivo que ele produziu, fazer commit e alterá-lo como quiser.

Isso significa:

  • Sem escape hatches. Não há superfície de configuração proprietária para aprender ou lutar quando você precisa fazer algo que o gerador não antecipou. Você edita o código gerado diretamente, da mesma forma que editaria qualquer código que você mesmo escreveu.
  • Sem novas camadas de abstração. Geradores emitem código simples e idiomático para os frameworks subjacentes. Não há API wrapper ou indireção mágica entre você e React, tRPC, FastAPI, CDK ou qualquer outra ferramenta — o que você vê é o que executa.
  • O plugin não é uma dependência. Ele gera código e sai do caminho. Sua aplicação não importa ou depende de @aws/nx-plugin em runtime, então você nunca é bloqueado por ele e nunca fica preso.

Se você não gostar de algo no código gerado, você é livre para modificá-lo. Geradores dão a você um ponto de partida, não uma gaiola.

Ser dono do seu código geralmente tem um custo: no momento em que você começa a editar um scaffold, você fica isolado das correções e melhorias feitas upstream. Adotá-las novamente significa ler um changelog, regenerar e reconciliar um diff manualmente. Migrações são como o @aws/nx-plugin trabalha para evitar que isso aconteça.

Releases enviam migrações junto com elas, visando trazer o código que geradores anteriores produziram em sintonia com as melhorias que fizemos desde então. Quando corrigimos um bug, reforçamos um padrão de segurança ou refinamos um padrão gerado, executar nx migrate aplica essa mudança ao seu código, no lugar — em vez de deixar você identificá-la em um changelog e portá-la você mesmo.

Na prática:

  • Atualização é automatizada, não um exercício de readoção. Um workspace gerado meses atrás pode avançar com o plugin em vez de se afastar dele.
  • Customizações são correspondidas por padrões, não sobrescritas. Migrações verificam se um arquivo ainda corresponde à forma que o gerador produziu. Onde ele divergiu além do que elas podem atualizar com segurança, elas deixam seu código intacto e reportam o acompanhamento manual.
  • Algumas mudanças chegam como prompts de agente. Onde a edição correta depende do que você construiu, a migração é um prompt que seu agente de codificação de IA aplica em vez de um codemod.
  • Upgrades são opcionais. Nada no seu workspace muda até você escolher executar nx migrate.

Migrações estreitam a lacuna em vez de fechá-la: o quão longe seu código se moveu decide o quanto elas podem fazer, e alguns passos ainda precisarão de suas mãos.

O @aws/nx-plugin busca manter o número de dependências globais no mínimo. O que você precisa para começar se resume a quais geradores você invoca.

Por exemplo, qualquer gerador baseado em TypeScript exigirá apenas Node instalado. Para projetos baseados em Python, UV é o único requisito.

O @aws/nx-plugin emprega type-safety para simplificar a experiência do desenvolvedor via autocompletar do IDE, ao mesmo tempo que elimina erros de runtime que de outra forma só surgiriam em uma implementação não type-safe. Como tal, todos os componentes fornecidos são type-safe por padrão.

Type safety flui através das fronteiras do projeto: quando você conecta um website a uma API, o cliente gerado compartilha tipos com o backend, então uma mudança em um contrato de API aparece como um erro de tempo de compilação no seu frontend em vez de um bug em produção. Refatore com confiança.