Commands — 自定义 CLI 命令
Finch 允许你使用 CappController 构建自定义 CLI 命令。
创建命令
import 'package:finch/finch_capp.dart';
class MigrateCommand extends CappController {
@override
String get name => 'db:migrate';
@override
String get description => '运行数据库迁移';
@override
Future<void> handle() async {
console.info('正在运行迁移...');
// 迁移逻辑
console.success('迁移成功');
}
}
注册命令
在 FinchConfigs 中注册命令:
FinchConfigs(
commands: [
MigrateCommand(),
SeedCommand(),
ClearCacheCommand(),
],
)
运行命令
dart run bin/finch.dart db:migrate
使用 CappConsole 输出
| 方法 | 描述 |
|---|---|
console.info(msg) |
蓝色信息消息 |
console.success(msg) |
绿色成功消息 |
console.warning(msg) |
黄色警告消息 |
console.error(msg) |
红色错误消息 |
console.line(msg) |
普通文本行 |
console.table(headers, rows) |
渲染表格 |
console.newLine() |
空行 |
读取选项
@override
Future<void> handle() async {
var env = getOption('env', def: 'development');
var dryRun = getBoolOption('dry-run', def: false);
if (dryRun) {
console.warning('试运行模式:不会应用任何更改');
}
console.info('环境:\$env');
}
内置命令
| 命令 | 描述 |
|---|---|
finch serve |
启动开发服务器 |
finch build |
构建生产版本 |
finch migrate |
运行数据库迁移 |
finch make:controller |
创建新控制器 |
finch make:model |
创建新模型 |