Skip to content

Commands

Laratype cung cấp một số lệnh tiện ích để giúp bạn quản lý và phát triển ứng dụng của mình. Các lệnh này có thể được chạy từ dòng lệnh (CLI) và thường được sử dụng để tạo các thành phần mới, chạy máy chủ phát triển, và thực hiện các tác vụ khác. Bạn có thể tham khảo thêm tại đây.

Tuy nhiên, bạn có thể tự tạo các lệnh tùy chỉnh của riêng mình để phục vụ các nhu cầu cụ thể của ứng dụng. Dưới đây là hướng dẫn cơ bản về cách tạo và sử dụng lệnh trong Laratype.

INFO

Các lệnh được tổ chức trong thư mục console/commands.

INFO

Laratype sử dụng thư viện commander để quản lý các lệnh CLI.

Tạo lệnh mới

Generate Command

sh
$ npx sauf make:command SendMail
sh
$ pnpx sauf make:command SendMail
sh
$ bunx sauf make:command SendMail

Laratype sẽ tạo một file command mới trong thư mục src/console/commands/ với tên SendMail.ts.

TIP

Bạn có thể tạo nhiều command cùng lúc bằng cách truyền vào nhiều tên.

Xem thêm
sh
$ npx sauf make:command SendMail AnotherCommand
sh
$ pnpx sauf make:command SendMail AnotherCommand
sh
$ bunx sauf make:command SendMail AnotherCommand

Writing Command

ts
import { Command } from "@laratype/console";

export default class SendMail extends Command {

  static signature = "send:mail";

  static description = "Send a test email";

  public async handle() {
    console.log("Sending a test email...");
  }

}

Mỗi command sẽ kế thừa từ lớp Command có sẵn trong gói @laratype/console. Bạn cần định nghĩa các thuộc tính signaturedescription để mô tả lệnh, và phương thức handle() để chứa logic thực thi của lệnh.

Options

Bạn có thể định nghĩa các tùy chọn (options) cho lệnh của mình bằng cách sử dụng static options trong class command.

ts
import { Command } from "@laratype/console";

export default class SendMail extends Command {

  static signature = "send:mail";

  static description = "Send a test email";

  static options = [
    ['-d, --date <date>', 'Date to send the email', '2025-11-29'],
    ['-l, --logs <logs>', 'Logs to display', 'info'],
  ]

  public async handle() {
    const options = this.opts();
    console.log(`Sending email on date: ${options.date}`);
    console.log(`Logging level: ${options.logs}`);
    console.log("Sending a test email...");
  }

}

Arguments

Bạn có thể định nghĩa các đối số (arguments) cho lệnh của mình bằng cách sử dụng static arguments trong class command.

ts
import { Command } from "@laratype/console";

export default class SendMail extends Command {

  static signature = "send:mail";

  static description = "Send a test email";

  static arguments = [
    {
      name: "<ids...>",
      description: "The IDs of users to send email to",
    }
  ]

  public async handle(userIds: string[]) {

    for (const id of userIds) {
      console.log(`Sending email to user ID: ${id}`);
    }
  }

}

Chạy command

Sau khi tạo command, bạn có thể chạy nó từ dòng lệnh bằng cách sử dụng lệnh sauf hoặc saufx (đối với môi trường production). Ví dụ, để chạy lệnh SendMail, bạn sẽ sử dụng:

Development
sh
$ npx sauf send:mail
sh
$ pnpx sauf send:mail
sh
$ yarn sauf send:mail
sh
$ bunx sauf send:mail
Production
sh
$ npm saufx send:mail
sh
$ pnpm saufx send:mail
sh
$ yarn saufx send:mail
sh
$ bun saufx send:mail

Bạn có thể lấy danh sách tất cả các lệnh có sẵn bằng cách chạy:

Development
sh
$ npx sauf -h
sh
$ pnpx sauf -h
sh
$ yarn sauf -h
sh
$ bun sauf -h
Production
sh
$ npm saufx -h
sh
$ pnpm saufx -h
sh
$ yarn saufx -h
sh
$ bun saufx -h