Danh Sách Lệnh CLI
Tài liệu này cung cấp hướng dẫn chi tiết về các câu lệnh của Tasco CLI (tasco), bao gồm cú pháp, tham số cấu hình, và các bước hoạt động tự động bên dưới.
1. Khởi Tạo Dự Án — tasco create app
Lệnh này dùng để tạo mới cấu trúc dự án Host Shell (SuperApp) từ các tiêu chuẩn thiết kế sẵn có của Tasco.
Cú pháp
tasco create app \
--name "Tasco Customer" \
--folder customer_app \
--package vn.com.tasco.customer
Các Tham Số Tùy Chọn (Options)
--template-version <version>: Xác định phiên bản template của framework cần tải (mặc định sẽ sử dụng bản mới nhất).--source <path>: Đường dẫn tới thư mục chứa template cục bộ (dành cho chế độ offline hoặc môi trường phát triển CLI).--offline: Bắt buộc CLI chỉ tìm kiếm template trong thư mục cache cục bộ, không gửi yêu cầu tải về từ registry.
Cơ Chế Hoạt Động (Flow)
Khi lệnh được gọi, CLI sẽ thực hiện các bước sau:
Cấu Trúc Thư Mục Kết Quả
customer_app/
├── app/ # Dự án Flutter Host Shell (Container chính)
│ ├── assets/ # Chứa các file .env cấu hình môi trường
│ ├── lib/ # Logic khởi chạy, router chính, dependency injection
│ └── pubspec.yaml # Liên kết đến các thư viện core tasco_* từ Registry
├── mini_apps/ # Thư mục trống để chứa các Mini-apps được tạo sau này
└── tasco.yaml # File cấu hình trung tâm của dự án (mẫu BOM, State)
2. Tạo Mới Mini-app — tasco generate miniapp
Lệnh này giúp sinh một gói Mini-app độc lập mới nằm trong thư mục mini_apps/ và tự động liên kết (auto-wire) nó vào dự án Host Shell.
Lệnh này chỉ được chạy tại thư mục gốc của dự án SuperApp (nơi chứa file tasco.yaml và thư mục app/).
Cú pháp
tasco generate miniapp payment
Tự Động Kết Nối (Auto-Wiring)
CLI thực hiện quy trình tự động hóa khép kín:
- Khởi tạo Package: Tạo thư mục
mini_apps/paymentchứa cấu trúc của một Flutter package độc lập. - Khai báo Dependency: Tự động chèn cấu trúc sau vào
app/pubspec.yaml:dependencies:payment:path: ../mini_apps/payment - Đăng ký Khởi Tạo: Đọc file
app/lib/bootstrap.dart, tìm kiếm các mốc comment (anchors) được quy định trước và chèn các dòng mã import cũng như đăng ký:- Import Anchor (
// tasco:miniapp-imports):import 'package:payment/payment.dart'; - Registration Anchor (
// tasco:miniapp-register):moduleManager.register(PaymentController.instance.toModuleSlot());
- Import Anchor (
- Cập Nhật Cấu Hình: Lưu tên mini-app
paymentvào danh sáchminiappstrong filetasco.yaml.
3. Sinh Thành Phần Clean Architecture — tasco generate <component>
CLI hỗ trợ sinh các tệp mã nguồn theo quy chuẩn Clean Architecture và tự động đăng ký Dependency Injection thông qua phân tích Dart AST (Abstract Syntax Tree).
Lệnh Sinh Toàn Bộ Bộ Khung Tầng (Full Stack Resource)
tasco generate resource contract
Lệnh này sẽ tạo ra tất cả các lớp liên quan tới đối tượng nghiệp vụ contract bao gồm:
ContractEntityvàContractModel(Tầng Domain & Data).ContractRepository(giao diện) vàContractRepositoryImpl(hiện thực hóa tầng Data).ContractServicevàContractServiceImpl(Tầng Application).GetContractUseCase(Tầng Domain).ContractController(Cubit/Bloc/Riverpod/GetX tùy cấu hình) kèm theo tệp Unit Test tương ứng.- Tự động đăng ký tất cả các lớp impl vào hệ thống DI.
Sinh Các Thành Phần Riêng Lẻ
Nếu chỉ cần sinh các lớp đơn lẻ, bạn có thể sử dụng các lệnh dưới đây:
| Lệnh | Chức năng | Đường dẫn đầu ra mẫu |
|---|---|---|
tasco generate entity <name> | Sinh lớp Entity biểu diễn thực thể nghiệp vụ | lib/domain/entities/ |
tasco generate repository <name> | Sinh interface và lớp hiện thực Repository | lib/data/repositories/ |
tasco generate service <name> | Sinh interface và lớp hiện thực Service xử lý logic | lib/domain/services/ |
tasco generate usecase <name> | Sinh Use Case xử lý luồng nghiệp vụ đơn lẻ | lib/domain/use_cases/ |
tasco generate controller <name> | Sinh Controller (Cubit/Bloc/Riverpod/GetX) | lib/presentation/controllers/ |
tasco generate api <name> | Sinh client API kết nối Restful API | lib/data/datasources/ |
4. Cơ Chế Đăng Ký DI Dựa Trên Dart AST
Điểm đặc biệt của Tasco CLI là khả năng tự động cập nhật hệ thống Dependency Injection (get_it) mà không cần nhà phát triển phải chỉnh sửa thủ công file cấu hình.
Cơ chế phân tích AST đảm bảo mã nguồn được sinh ra chuẩn xác cú pháp hơn so với việc sử dụng Regex tìm kiếm thay thế chuỗi thông thường.
5. Sinh API Từ Swagger/OpenAPI Spec
Khi tích hợp với các hệ thống backend, bạn có thể sinh nhanh toàn bộ các Model DTO (Data Transfer Object) và API Client từ đặc tả Swagger.
tasco generate api --from swagger.yaml
Tham số --from chấp nhận một đường dẫn trỏ tới file định dạng .json hoặc .yaml của Swagger/OpenAPI. CLI sẽ phân tích các endpoint và các schema định nghĩa để tạo ra các file Dart tương ứng.
6. Trợ Lý AI Sinh Mã — tasco ai generate
CLI tích hợp sẵn mô hình ngôn ngữ lớn để hỗ trợ sinh mã nguồn trực tiếp từ mô tả ngôn ngữ tự nhiên của bạn.
tasco ai generate --prompt "Tích hợp cổng thanh toán VNPay xử lý giao dịch hoàn tiền"
CLI sẽ gửi prompt đến AI Engine, phân tích nghiệp vụ được yêu cầu, sinh ra các lớp Clean Architecture tương ứng và lưu trực tiếp vào cấu trúc thư mục của dự án hiện tại.
7. Các Lệnh Tiện Ích Khác
tasco login
Lưu trữ Access Token cho Private Registry. Lệnh này sẽ nhắc bạn nhập token và lưu trữ cấu hình bảo mật vào thư mục home của người dùng để sử dụng cho các lần cài đặt hoặc kiểm tra phiên bản sau đó.
tasco upgrade
Kiểm tra phiên bản CLI hiện tại với Registry pub.vtii.vn. Nếu có phiên bản mới hơn, CLI sẽ tự động thực hiện tiến trình nâng cấp để cập nhật các lệnh và template mới nhất.
tasco cache clean
Xóa toàn bộ các tệp template tạm thời đã tải và lưu trong thư mục .pub-cache hoặc thư mục cache của hệ thống. Dùng khi bạn muốn tải lại các bản template mới nhất từ registry thay vì sử dụng cache.