Flutter蓝鸟命令行工具插件blue_bird_cli的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter蓝鸟命令行工具插件blue_bird_cli的使用

项目介绍

Blue Bird CLI 是一个用于生成复杂大型Flutter项目的命令行工具,它可以帮助开发者快速搭建具有模块化架构的Flutter应用程序。该工具由Very Good CLI启发并扩展,提供了更多功能和灵活性。

Blue Bird CLI

快速开始 🚀

安装

要安装 Blue Bird CLI,请运行以下命令:

dart pub global activate blue_bird_cli

使用帮助

查看 CLI 版本:

blue_bird --version

查看使用帮助:

blue_bird --help

命令使用

更新命令

如果你需要更新到最新版本的 Blue Bird CLI,可以使用 update 命令:

blue_bird update

创建命令

create 命令用于创建一个新的 Flutter 项目或包。以下是几种常见的用法:

  1. 创建一个新的 Flutter 项目

    blue_bird create my_project
    
  2. 创建带有自定义组织名称的 Flutter 项目

    blue_bird create my_project --desc "My new Flutter project" --org "com.custom.org"
    
  3. 创建带有自定义应用ID的 Flutter 项目

    blue_bird create my_project --application-id "com.custom.app.id"
    
  4. 在指定目录中创建 Flutter 项目

    blue_bird create my_project --output-directory "my_projects"
    
  5. 创建一个新的 Flutter 包(例如 feat_example 包):

    blue_bird create my_package --template flutter_package
    

项目结构

使用 blue_bird create my_project 命令创建的项目将具有以下结构:

📦my_project
┣ 📂android
┣ 📂core
┃ ┣ 📂components
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┗ 📜components_config.dart
┃ ┃ ┃ ┃ ┗ 📂presentation
┃ ┃ ┃ ┃ ┃ ┗ 📜components_example_widget.dart
┃ ┃ ┃ ┗ 📜components.dart
┃ ┃ ┣ 📂test
┃ ┃ ┃ ┗ 📂src
┃ ┃ ┃ ┃ ┗ 📜my_project_test.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┃ ┣ 📂dependencies
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┗ 📜dependencies.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┃ ┣ 📂di
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┗ 📜di_injection_module.dart
┃ ┃ ┃ ┗ 📜di.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┃ ┣ 📂internationalization
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┗ 📂l10n
┃ ┃ ┃ ┃ ┃ ┗ 📜intl_en.arb
┃ ┃ ┃ ┗ 📜internationalization.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┣ 📜l10n.yaml
┃ ┃ ┗ 📜pubspec.yaml
┃ ┣ 📂network
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┗ 📜network.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┃ ┣ 📂routes
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┗ 📜route_names.dart
┃ ┃ ┃ ┗ 📜routes.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┃ ┗ 📂theme
┃ ┃ ┣ 📂assets
┃ ┃ ┃ ┣ 📂images
┃ ┃ ┃ ┃ ┗ 📜empty_img.png
┃ ┃ ┃ ┗ 📂svg
┃ ┃ ┃ ┃ ┗ 📜empty_ico.svg
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┣ 📂colors
┃ ┃ ┃ ┃ ┃ ┗ 📜theme_colors.dart
┃ ┃ ┃ ┃ ┣ 📂icons
┃ ┃ ┃ ┃ ┃ ┗ 📜theme_icons.dart
┃ ┃ ┃ ┃ ┣ 📂images
┃ ┃ ┃ ┃ ┃ ┗ 📜theme_images.dart
┃ ┃ ┃ ┃ ┣ 📂spacers
┃ ┃ ┃ ┃ ┃ ┗ 📜theme_spacers.dart
┃ ┃ ┃ ┃ ┣ 📂text_styles
┃ ┃ ┃ ┃ ┃ ┗ 📜theme_text_styles.dart
┃ ┃ ┃ ┃ ┗ 📂theme_datas
┃ ┃ ┃ ┃ ┃ ┗ 📜theme_datas.dart
┃ ┃ ┃ ┗ 📜theme.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┣ 📂features
┃ ┗ 📂feat_example
┃ ┃ ┣ 📂lib
┃ ┃ ┃ ┣ 📂src
┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_const.dart
┃ ┃ ┃ ┃ ┣ 📂data
┃ ┃ ┃ ┃ ┃ ┣ 📂datasources
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂local
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_local_datasource_impl.dart
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂remote
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_remote_datasource_impl.dart
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_datasource.dart
┃ ┃ ┃ ┃ ┃ ┣ 📂models
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜feat_example_request_model.dart
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_response_model.dart
┃ ┃ ┃ ┃ ┃ ┗ 📂repositories
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_repository_impl.dart
┃ ┃ ┃ ┃ ┣ 📂di
┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_provider.dart
┃ ┃ ┃ ┃ ┣ 📂domain
┃ ┃ ┃ ┃ ┃ ┣ 📂entities
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_entity.dart
┃ ┃ ┃ ┃ ┃ ┣ 📂repositories
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_respository.dart
┃ ┃ ┃ ┃ ┃ ┗ 📂usecases
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_usecase.dart
┃ ┃ ┃ ┃ ┗ 📂presentation
┃ ┃ ┃ ┃ ┃ ┣ 📂application
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂feat_example_counter
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜feat_example_counter_cubit.dart
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_counter_state.dart
┃ ┃ ┃ ┃ ┃ ┣ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_page.dart
┃ ┃ ┃ ┃ ┃ ┗ 📂widgets
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜feat_example_widget.dart
┃ ┃ ┃ ┗ 📜feat_example.dart
┃ ┃ ┣ 📂test
┃ ┃ ┃ ┗ 📂src
┃ ┃ ┃ ┃ ┗ 📜feat_example_test.dart
┃ ┃ ┣ 📜analysis_options.yaml
┃ ┃ ┗ 📜pubspec.yaml
┣ 📂ios
┣ 📂resources
┣ 📜.gitignore
┣ 📜analysis_options.yaml
┣ 📜pubspec.yaml
┗ 📜README.md

目录说明

  • core: 包含所有核心功能和配置,供 features 和主项目使用。
  • core/components: 包含整个应用的通用小部件。
  • core/dependencies: 导出第三方依赖项和核心包,以便在整个应用中使用。
  • core/di: 依赖注入配置。
  • core/internationalization: 应用国际化配置。
  • core/network: 网络配置。
  • core/routes: 应用路由名称。
  • core/theme: 应用主题配置,包括主题数据、颜色、图标、图片等。
  • features: 项目中各个功能模块,每个模块具有单一职责。
  • features/feat_example: 功能示例模块。
  • features/feat_example/…/data: 包含仓库和数据源实现以及服务模型。
  • features/feat_example/…/data/datasources/local: 本地数据源实现。
  • features/feat_example/…/data/datasources/remote: 远程数据源实现。
  • features/feat_example/…/data/models: 请求和响应的服务模型。
  • features/feat_example/…/data/repositories: 仓库实现。
  • features/feat_example/…/di: 功能模块的依赖注入设置。
  • features/feat_example/…/domain: 包含实体和接口。
  • features/feat_example/…/domain/entities: 功能模块的实体。
  • features/feat_example/…/domain/repositories: 功能模块的仓库接口。
  • features/feat_example/…/domain/usecases: 功能模块的用例。
  • features/feat_example/…/presentation: 功能模块的视觉组件和业务逻辑。
  • features/feat_example/…/presentation/application: 视觉组件的业务逻辑。
  • features/feat_example/…/presentation/pages: 功能模块的页面。
  • features/feat_example/…/presentation/widgets: 功能模块的原子小部件。

示例代码

以下是一个简单的示例,展示了如何激活 Blue Bird CLI 并查看可用命令:

# 激活 Blue Bird CLI
dart pub global activate blue_bird_cli

# 查看可用命令列表
blue_bird --help

更多关于Flutter蓝鸟命令行工具插件blue_bird_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter蓝鸟命令行工具插件blue_bird_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用Flutter蓝鸟命令行工具插件 blue_bird_cli 的代码案例和简要说明。这个示例假设你已经有一个Flutter项目,并且已经添加了 blue_bird_cli 插件到你的 pubspec.yaml 文件中。

1. 添加 blue_bird_cli 到你的 Flutter 项目

首先,确保 blue_bird_cli 已经添加到你的 pubspec.yaml 文件中:

dependencies:
  flutter:
    sdk: flutter
  blue_bird_cli: ^x.y.z  # 请替换为实际的版本号

然后运行 flutter pub get 来获取依赖。

2. 使用 blue_bird_cli 插件的命令行功能

blue_bird_cli 插件通常会提供一些命令行工具来简化某些开发任务。这里我们假设它提供了一些命令,比如 blue_bird init 来初始化项目配置,blue_bird run 来执行某些自动化任务。

2.1 初始化项目配置

在命令行中,你可以使用以下命令来初始化项目配置:

flutter pub run blue_bird_cli:init

这个命令会调用插件中的 init 方法,并可能生成一些配置文件。

2.2 运行自动化任务

假设插件提供了一个运行自动化任务的命令 run,你可以在命令行中使用:

flutter pub run blue_bird_cli:run --task=my_task_name

这里 --task=my_task_name 是传递给插件的参数,用于指定要执行的具体任务。

3. 插件内部实现示例

以下是一个简化的 blue_bird_cli 插件的实现示例,展示如何在插件中定义命令行工具:

blue_bird_cli/lib/blue_bird_cli.dart

import 'package:args/args.dart';
import 'dart:io';

class BlueBirdCli {
  static void main(List<String> arguments) async {
    var parser = ArgParser();
    
    var command = parser.addCommand('init')
      ..addHelp('Initializes the project configuration.');

    var runCommand = parser.addCommand('run')
      ..addOption('task', abbr: 't', help: 'The name of the task to run.');

    try {
      var results = parser.parse(arguments);

      if (results.command == 'init') {
        await initProject();
      } else if (results.command == 'run') {
        var task = results['task'] as String?;
        if (task != null) {
          await runTask(task);
        } else {
          stderr.writeln('Task name is required.');
        }
      } else {
        stderr.writeln('Unknown command: ${results.command}');
        stderr.writeln(parser.usage());
      }
    } catch (e) {
      stderr.writeln('Error: $e');
    }
  }

  static Future<void> initProject() async {
    // 初始化项目配置的逻辑
    print('Initializing project configuration...');
    // 这里可以添加生成配置文件等逻辑
  }

  static Future<void> runTask(String taskName) async {
    // 运行自动化任务的逻辑
    print('Running task: $taskName');
    // 根据 taskName 执行相应的任务
  }
}

blue_bird_cli/pubspec.yaml

name: blue_bird_cli
version: 1.0.0
description: A command-line tool for Flutter projects.
dependencies:
  args: ^2.0.0  # 用于解析命令行参数

executables:
  blue_bird:
    main: lib/blue_bird_cli.dart

4. 使用插件提供的命令

在你的 Flutter 项目根目录下,你可以通过以下命令来使用 blue_bird_cli 插件提供的工具:

# 初始化项目配置
flutter pub run blue_bird_cli:init

# 运行自动化任务
flutter pub run blue_bird_cli:run --task=my_task_name

请注意,上面的代码是一个简化的示例,实际的 blue_bird_cli 插件可能会有更复杂的逻辑和功能。你需要参考插件的官方文档来获取完整的用法和功能说明。

回到顶部