Flutter蓝鸟命令行工具插件blue_bird_cli的使用
Flutter蓝鸟命令行工具插件blue_bird_cli的使用
项目介绍
Blue Bird CLI 是一个用于生成复杂大型Flutter项目的命令行工具,它可以帮助开发者快速搭建具有模块化架构的Flutter应用程序。该工具由Very Good 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 项目或包。以下是几种常见的用法:
-
创建一个新的 Flutter 项目:
blue_bird create my_project
-
创建带有自定义组织名称的 Flutter 项目:
blue_bird create my_project --desc "My new Flutter project" --org "com.custom.org"
-
创建带有自定义应用ID的 Flutter 项目:
blue_bird create my_project --application-id "com.custom.app.id"
-
在指定目录中创建 Flutter 项目:
blue_bird create my_project --output-directory "my_projects"
-
创建一个新的 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
更多关于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
插件可能会有更复杂的逻辑和功能。你需要参考插件的官方文档来获取完整的用法和功能说明。