Skip to main content

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/tự động liên kết (auto-wire) nó vào dự án Host Shell.

warning

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:

  1. Khởi tạo Package: Tạo thư mục mini_apps/payment chứa cấu trúc của một Flutter package độc lập.
  2. Khai báo Dependency: Tự động chèn cấu trúc sau vào app/pubspec.yaml:
    dependencies:
    payment:
    path: ../mini_apps/payment
  3. Đă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());
  4. Cập Nhật Cấu Hình: Lưu tên mini-app payment vào danh sách miniapps trong file tasco.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:

  • ContractEntityContractModel (Tầng Domain & Data).
  • ContractRepository (giao diện) và ContractRepositoryImpl (hiện thực hóa tầng Data).
  • ContractServiceContractServiceImpl (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ệnhChứ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 Repositorylib/data/repositories/
tasco generate service <name>Sinh interface và lớp hiện thực Service xử lý logiclib/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 APIlib/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.