Bỏ qua để đến nội dung

Khái niệm

@aws/nx-plugin là một plugin Nx cung cấp bộ công cụ để đơn giản hóa quy trình xây dựng và triển khai các ứng dụng full-stack trên AWS. Nó cung cấp cho các nhà phát triển các template được cấu hình sẵn cho cả mã ứng dụng và mã IaC, giảm đáng kể thời gian dành cho việc thiết lập và cấu hình. Plugin này xử lý sự phức tạp của việc tích hợp dịch vụ AWS trong khi vẫn duy trì tính linh hoạt cho việc tùy chỉnh.

Người dùng chỉ cần chọn các thành phần mà họ muốn từ danh sách các Generators có sẵn, cung cấp các tùy chọn cấu hình và để @aws/nx-plugin tạo mã khởi đầu cần thiết. Một số generator tồn tại trong bộ công cụ này có thể tạo API, website, hạ tầng và thậm chí thực hiện những việc phức tạp hơn như tích hợp frontend vào backend (bao gồm cập nhật các file hiện có thông qua AST transforms!) với các client type-safe.

generator

Nx là một framework build thông minh vượt trội trong việc quản lý các dự án đa ngôn ngữ phức tạp thông qua hai tính năng cốt lõi: một hệ thống build thông minh và các code generator.

Hệ thống build sử dụng caching nâng cao và phân tích đồ thị phụ thuộc để tối ưu hóa việc thực thi task. Nó chỉ rebuild những gì cần thiết dựa trên các thay đổi của mã, giảm đáng kể thời gian build. Các task có thể chạy song song, với Nx tự động xác định thứ tự thực thi tối ưu dựa trên các phụ thuộc của dự án. Điều này làm cho các hoạt động như testing, linting và building trở nên hiệu quả cao, đặc biệt trong các codebase lớn hơn.

Generator đóng vai trò là công cụ scaffolding tự động tạo ra các cấu trúc mã nhất quán trên các dự án. Chúng có thể tạo ra bất cứ thứ gì từ các component riêng lẻ đến các ứng dụng hoàn chỉnh, tuân theo các template và pattern được định nghĩa trước. Các team có thể tùy chỉnh các generator này để phù hợp với yêu cầu cụ thể và tiêu chuẩn coding của họ.

Kết hợp với nhau, các tính năng này làm cho Nx đặc biệt hiệu quả trong việc quản lý monorepo và đảm bảo các thực hành phát triển nhất quán giữa các team trong khi duy trì tốc độ phát triển cao.

Tất cả các thành phần có sẵn trong plugin này được triển khai dưới dạng Generators cho phép tự động hóa các task lặp đi lặp lại và cho phép scaffolding nhất quán cho cả các dự án mới và hiện có.

Generator có thể được gọi thông qua Nx CLI hoặc Nx Console IDE plugin.

generators

Tất cả mã được tạo ra là mã của bạn, nghĩa là bạn có thể tự do chỉnh sửa theo ý muốn. Điều này đơn giản hóa đáng kể trải nghiệm của nhà phát triển vì nếu bạn không thích điều gì đó trong mã được tạo, bạn có thể tự do sửa đổi nó.

@aws/nx-plugin cố gắng giữ số lượng phụ thuộc ở mức tối thiểu và do đó các yêu cầu toàn cục để 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.

Thiết lập monorepo mặc định sử dụng chính sách phiên bản đơn cho cả dự án dựa trên Node và Python.

Điều này có nghĩa là tất cả các dự án trong monorepo của bạn sẽ sử dụng cùng một phiên bản phụ thuộc theo mặc định, giảm các vấn đề liên quan đến các package trong cùng một monorepo gặp phải vấn đề không khớp phiên bản.

Từ góc độ Node, điều này có nghĩa là một lockfile duy nhất ở root với một node_modules duy nhất chứa tất cả các phụ thuộc. Nếu bạn cần thêm một phụ thuộc mới, bạn làm điều đó trong package.json ở root.

Từ góc độ Python, điều này có nghĩa là một .venv duy nhất ở root của monorepo với tất cả các phụ thuộc được cài đặt vào đó. Tuy nhiên, mỗi dự án Python sẽ có pyproject.toml riêng của nó, nhưng các phiên bản của các phụ thuộc đó được quản lý bởi uv workspace và sau đó được ghi ra file uv.lock ở root.

@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à chỉ xảy ra trong triển khai không type-safe. Do đó, tất cả các thành phần được cung cấp sẽ là type-safe theo mặc định.

generators