Khái niệm
@aws/nx-plugin là một plugin Nx cung cấp bộ công cụ để xây dựng và triển khai các ứng dụng full-stack trên AWS. Nó cung cấp cho bạn một bộ sưu tập các Generators để scaffold mã ứng dụng sẵn sàng cho production và hạ tầng để triển khai nó — type-safe, có thể chạy cục bộ và sẵn sàng để ship.
Thay vì bắt đầu từ một trang trống, bạn (hoặc AI agent của bạn) chọn các thành phần bạn cần — API, website, xác thực, AI agent, hạ tầng — cung cấp một vài tùy chọn cấu hình, và plugin sẽ tạo mã khởi đầu theo best practice. Nó thậm chí còn kết nối các dự án với nhau cho bạn (bao gồm cập nhật các file hiện có thông qua AST transforms) để tạo ra các client type-safe giữa frontend và backend của bạn.
Được xây dựng trên Nx và các generator của nó
Phần tiêu đề “Được xây dựng trên Nx và các generator của nó”Nx là một framework build thông minh để quản lý monorepo. Nó không phụ thuộc vào ngôn ngữ, cho phép TypeScript, Python, hạ tầng và nhiều thứ khác cùng tồn tại và build cùng nhau trong một workspace duy nhất. Hệ thống build của nó sử dụng caching và phân tích đồ thị phụ thuộc để chỉ rebuild những gì đã thay đổi và chạy các task song song, giữ cho testing, linting và building nhanh chóng khi workspace của bạn phát triển.
Mọi chức năng trong @aws/nx-plugin đều được cung cấp dưới dạng một Nx Generator — scaffolding tự động tạo ra các cấu trúc mã nhất quán từ các template được định nghĩa trước. Generator có thể được gọi thông qua Nx CLI, Nx Console IDE plugin, hoặc bởi AI assistant của bạn thông qua Nx Plugin for AWS MCP Server.
Bởi vì mọi thành phần đều là một generator, bạn chỉ thêm những gì bạn cần, khi bạn cần. Bắt đầu với một API, thêm một website sau, kết nối chúng khi bạn sẵn sàng — mỗi bước chỉ là một lệnh duy nhất.
Xây dựng với các framework đã được chứng minh
Phần tiêu đề “Xây dựng với các framework đã được chứng minh”@aws/nx-plugin cố ý tránh xây dựng các abstraction tùy chỉnh trên các công cụ bạn đã biết. Thay vì phát minh ra các framework, runtime hoặc wrapper riêng biệt, nó scaffold mã idiomatic sử dụng các dự án open-source đã được thiết lập và được áp dụng rộng rãi. Điều này có nghĩa là các kỹ năng hiện có của bạn được chuyển giao trực tiếp, bạn có thể dựa vào tài liệu chính thức cho mỗi framework, và bạn không bao giờ bị khóa vào một lớp mà chỉ plugin này hiểu.
Mã được tạo ra đứng trên vai của các framework tốt nhất trong lớp, bao gồm:
Giá trị của plugin nằm ở cách các phần này được cấu hình và kết nối với nhau cho AWS — không phải thay thế chúng.
Mở để chỉnh sửa
Phần tiêu đề “Mở để chỉnh sửa”Tất cả mã được tạo ra là mã của bạn. @aws/nx-plugin là một công cụ build-time, không phải là một dependency runtime — một khi generator đã chạy, plugin không còn trong bức tranh nữa. Bạn có thể đọc mọi file nó tạo ra, commit nó và thay đổi nó theo cách bạn muốn.
Điều này có nghĩa là:
- Không có escape hatch. Không có bề mặt cấu hình độc quyền nào để học hoặc vật lộn khi bạn cần làm điều gì đó mà generator không dự đoán trước. Bạn chỉnh sửa mã được tạo ra trực tiếp, giống như cách bạn chỉnh sửa bất kỳ mã nào bạn tự viết.
- Không có lớp abstraction mới. Generator phát ra mã idiomatic thuần túy cho các framework cơ bản. Không có wrapper API hoặc indirection ma thuật nào nằm giữa bạn và React, tRPC, FastAPI, CDK hoặc bất kỳ công cụ nào khác — những gì bạn thấy là những gì chạy.
- Plugin không phải là một dependency. Nó tạo mã và rời khỏi đường. Ứng dụng của bạn không import hoặc dựa vào
@aws/nx-plugintại runtime, vì vậy bạn không bao giờ bị chặn bởi nó và không bao giờ bị khóa.
Nếu bạn không thích điều gì đó trong mã được tạo ra, bạn có thể tự do sửa đổi nó. Generator cho bạn một khởi đầu tốt, không phải một cái lồng.
Phụ thuộc tối thiểu
Phần tiêu đề “Phụ thuộc tối thiểu”@aws/nx-plugin cố gắng giữ số lượng phụ thuộc toàn cục ở mức tối thiểu. Những gì bạn cần để bắt đầu phụ thuộc vào các generator mà bạn gọi.
Ví dụ, bất kỳ generator dựa trên TypeScript nào sẽ chỉ yêu cầu cài đặt Node. Đối với các dự án dựa trên Python, UV là yêu cầu duy nhất.
An toàn kiểu
Phần tiêu đề “An toàn kiểu”@aws/nx-plugin sử dụng type-safety để đơn giản hóa trải nghiệm của nhà phát triển thông qua các gợi ý hoàn thành trong IDE, đồng thời loại bỏ các lỗi runtime mà nếu không sẽ chỉ xuất hiện trong triển khai không type-safe. Do đó, tất cả các thành phần được cung cấp đều là type-safe theo mặc định.
Type safety chảy qua các ranh giới dự án: khi bạn kết nối một website với một API, client được tạo ra chia sẻ các type với backend, vì vậy một thay đổi đối với API contract xuất hiện dưới dạng lỗi compile-time trong frontend của bạn thay vì một bug trong production. Refactor với sự tự tin.