Flutter插件m_cli_core的使用_m_cli_core是一个用于支持命令行应用程序的Dart包

Flutter插件m_cli_core的使用_m_cli_core是一个用于支持命令行应用程序的Dart包

m_cli_core概述

m_cli_core 是一个用于支持命令行应用程序的Dart包。它主要用于生成测试覆盖率徽章,并提供了一些基础功能来处理命令行参数和执行命令。

m_cli_core安装与激活

首先,确保你已经安装了Dart SDK。然后,在你的项目中添加 m_cli_core 依赖到 pubspec.yaml 文件中:

dependencies:
  m_cli_core: ^版本号

运行以下命令来获取并安装依赖:

dart pub get

运行测试

要运行所有的单元测试,可以使用以下步骤:

  1. 激活 coverage 工具:

    dart pub global activate coverage
    
  2. 生成覆盖率报告:

    dart test --coverage=coverage
    
  3. 将覆盖率数据格式化为LCOV格式:

    dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info
    
  4. 生成覆盖率报告并打开:

    genhtml coverage/lcov.info -o coverage/
    open coverage/index.html
    

示例代码

以下是一个简单的示例,展示了如何使用 m_cli_core 创建一个命令行应用程序。

main.dart

import 'package:args/command_runner.dart';
import 'package:m_cli_core/m_cli_core.dart';

void main(List<String> arguments) async {
  // 创建一个命令行程序实例
  var runner = CommandRunner(
    'badge-test',  // 命令行程序名称
    'CLI arc supporter generator test coverage badge',  // 命令行程序描述
  )
    ..addCommand(ExampleCommand())  // 添加命令
    ..argParser.addFlag(
      'verbose',  // 添加一个标志
      abbr: 'v',  // 缩写
      negatable: false,  // 不可否定
      help: 'Noisy logging, including all shell commands executed.',  // 帮助信息
    );
  
  // 执行命令
  await runner.run(arguments);
}

// 定义一个命令类
class ExampleCommand extends BaseCommand {
  ExampleCommand() : super();

  @override
  String get description => "echo text";  // 命令描述

  @override
  String get name => "echo";  // 命令名称

  @override
  List<CommandOption> get provideOptions => [
        CommandOption(
          name: "text",  // 选项名称
          help: "The input text to echo (required).",  // 选项帮助信息
          valueHelp: 'text',  // 选项值的帮助信息
          isMandatory: true,  // 是否必须
        )
      ];

  @override
  Future<void> onCommandExecuted() async {
    // 获取命令行参数
    final optionIn = getOptionAt(0);
    final inputText = optionIn.getArgOption<String>(argResults: argResults);

    // 输出文本
    ConsoleUtils.echoText(message: inputText ?? "");
    // 更新结束消息
    updateEndingMessage("Your text has been echo");
  }
}

生成徽章

要生成测试覆盖率徽章,可以使用以下命令:

badge-test gen --in=coverage/lcov.info

更多关于Flutter插件m_cli_core的使用_m_cli_core是一个用于支持命令行应用程序的Dart包的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件m_cli_core的使用_m_cli_core是一个用于支持命令行应用程序的Dart包的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


m_cli_core 是一个用于 Flutter 的命令行工具插件,主要用于生成项目结构、代码模板、自动化任务等。它可以帮助开发者更高效地管理和构建 Flutter 项目。以下是对 m_cli_core 插件的一些探索和使用介绍。

1. 安装 m_cli_core

首先,你需要在你的 Flutter 项目中安装 m_cli_core。你可以通过以下命令安装:

flutter pub add m_cli_core

这将会在你的 pubspec.yaml 文件中添加 m_cli_core 依赖。

2. 基本使用

m_cli_core 提供了一系列的命令行工具,可以通过 m 命令来调用。以下是一些常用的命令:

2.1 生成新项目

你可以使用 m_cli_core 来生成一个新的 Flutter 项目结构:

m create my_new_project

这将会在当前目录下生成一个名为 my_new_project 的 Flutter 项目,并自动配置好项目结构。

2.2 生成代码模板

m_cli_core 支持生成各种代码模板,例如页面、组件、服务等。你可以使用以下命令来生成一个页面模板:

m generate page home

这将会在 lib/pages 目录下生成一个名为 home_page.dart 的页面模板。

2.3 生成组件

你可以使用以下命令来生成一个组件模板:

m generate component button

这将会在 lib/components 目录下生成一个名为 button.dart 的组件模板。

2.4 自动化任务

m_cli_core 还支持自动化任务,例如清理项目、运行测试等。你可以使用以下命令来清理项目:

m clean

这将会清理项目的构建缓存和临时文件。

3. 自定义配置

m_cli_core 允许你通过配置文件来自定义生成模板的行为。你可以在项目根目录下创建一个 m_cli.yaml 文件来进行配置。以下是一个简单的配置示例:

templates:
  page:
    path: lib/pages
    template: templates/page_template.dart
  component:
    path: lib/components
    template: templates/component_template.dart

在这个配置文件中,你可以指定生成页面和组件时使用的模板路径和输出路径。

4. 高级功能

m_cli_core 还提供了一些高级功能,例如插件扩展、自定义命令等。你可以通过编写自定义插件来扩展 m_cli_core 的功能。以下是一个简单的自定义命令示例:

import 'package:m_cli_core/m_cli_core.dart';

class MyCustomCommand extends Command {
  @override
  String get name => 'my_custom_command';

  @override
  String get description => 'This is a custom command';

  @override
  Future<void> run() async {
    print('Running my custom command...');
    // Add your custom logic here
  }
}

void main() {
  final cli = CLI();
  cli.addCommand(MyCustomCommand());
  cli.run();
}

你可以将这个自定义命令添加到 m_cli_core 中,并通过以下命令来调用:

m my_custom_command
回到顶部