Flutter命令行工具插件mason_cli的使用

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

Flutter命令行工具插件mason_cli的使用

Mason CLI 是一个用于创建和使用可复用模板(称为 bricks)的命令行工具,它由 mason 生成器驱动。通过 Mason CLI,开发者可以快速生成一致且高质量的代码结构,从而提高开发效率。

快速开始

安装 Mason CLI

你可以从 pub.dev 或 Homebrew 安装 Mason CLI:

# 从 pub.dev 激活
dart pub global activate mason_cli

# 或者从 Homebrew 安装
brew tap felangel/mason
brew install mason

初始化 Mason

在当前目录初始化 Mason:

mason init

这会生成一个 mason.yaml 文件,用于注册和管理 bricks。

安装并使用第一个 brick

安装并使用名为 hello 的 brick:

mason add hello
mason make hello

这将生成一个包含问候信息的文件 HELLO.md

使用示例

基本用法

运行以下命令以生成一个简单的问候文件:

$ mason get # 只需第一次运行
$ mason make greeting --name Felix

生成的 GREETINGS.md 文件内容如下:

# Greetings Felix!

循环与 JSON

使用 JSON 文件作为输入变量,生成待办事项列表:

$ mason get # 只需第一次运行
$ mason make todos -c todos.json

假设 todos.json 内容如下:

{
  "todos": [
    {"text": "Eat", "completed": true},
    {"text": "Code", "completed": true},
    {"text": "Sleep", "completed": false}
  ]
}

生成的 TODOS.md 文件内容如下:

# TODOS

- [x] Eat
- [x] Code
- [ ] Sleep

创建新的 Brick

使用 mason new 命令创建一个新的 brick:

mason new <BRICK_NAME>

例如,创建一个名为 greeting 的 brick:

mason new greeting --desc "A simple greeting brick"

这将在当前目录下生成一个包含必要文件的 brick 结构。

Brick YAML

brick.yaml 文件定义了 brick 的元数据和变量。例如:

name: greeting
description: A simple greeting brick
version: 0.1.0+1
environment:
  mason: ^0.1.0
vars:
  name:
    type: string
    description: Your name.
    default: Dash
    prompt: What is your name?

Brick Template

__brick__ 目录中编写模板文件,使用 Mustache 语法。例如:

# Hello {{name}}!

高级功能

自定义输出目录

指定自定义输出目录:

mason make hello --name Felix -o ./path/to/directory

文件冲突解决

处理文件冲突时可以选择覆盖、跳过或追加:

mason make hello --name Felix --on-conflict overwrite

内置 Lambda 函数

Mason 提供了多种内置 Lambda 函数来转换变量值。例如:

{{name.camelCase()}}  # 输出 helloWorld

Hook 脚本

可以在生成前后执行 Dart 脚本:

mason new <BRICK_NAME> --hooks

例如,在 post_gen.dart 中添加日志输出:

import 'package:mason/mason.dart';

void run(HookContext context) {
  context.logger.info('hello {{name}}!');
}

总结

Mason CLI 提供了一套强大的工具链,帮助开发者快速生成一致且高质量的代码结构。通过灵活的模板系统和丰富的命令行选项,Mason CLI 成为了 Flutter 开发中的得力助手。希望这篇指南能帮助你更好地理解和使用 Mason CLI。

如果你有任何问题或需要进一步的帮助,请参考官方文档或观看视频教程:

Mason Video Tutorial


以上是关于 Mason CLI 的详细介绍和使用示例,希望能对你有所帮助!


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

1 回复

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


当然,以下是如何在Flutter项目中使用mason_cli命令行工具的示例代码和相关配置。mason_cli是一个用于管理和生成Flutter项目模板的工具,类似于砖块(bricks)的组装,非常适合快速启动和标准化项目结构。

1. 安装mason_cli

首先,你需要全局安装mason_cli。打开你的命令行工具并运行以下命令:

dart pub global activate mason_cli

2. 初始化Mason项目

在你想要创建Mason项目的目录中运行以下命令:

mason init

这将在当前目录中创建一个.mason文件夹,其中包含Mason的配置文件mason.yaml

3. 配置mason.yaml

打开mason.yaml文件,添加砖块(bricks)的配置。例如,假设你有一个名为my_brick的砖块,配置可能如下:

bricks:
  my_brick:
    source: git
    url: https://github.com/your-username/my_brick.git
    ref: main

4. 创建砖块

假设你已经有一个远程Git仓库作为砖块源,或者你可以本地创建一个砖块。这里我们假设你在本地创建一个简单的砖块。

在你的项目根目录下创建一个bricks文件夹,并在其中创建一个名为my_brick的文件夹。在这个文件夹中,创建一个brick.yaml文件,内容如下:

name: my_brick
description: A simple example brick
version: 1.0.0

然后,在my_brick文件夹中创建一个你想要包含的文件或文件夹结构。例如,可以创建一个lib文件夹和一个简单的Dart文件example.dart

// lib/example.dart
void printHello() {
  print("Hello from my_brick!");
}

5. 生成砖块

回到你的项目根目录,运行以下命令来生成my_brick

mason generate my_brick

这将在你的项目根目录中创建一个与砖块同名的文件夹(在这个例子中是my_brick),其中包含砖块的所有文件和文件夹。

6. 使用生成的砖块

现在你可以在你的Flutter项目中使用生成的砖块。例如,在lib/main.dart中导入并使用生成的砖块中的代码:

import 'package:your_project_name/my_brick/lib/example.dart';

void main() {
  printHello();
  // 其他Flutter代码...
}

7. 更新和管理砖块

如果你需要更新砖块,可以编辑mason.yaml文件中的砖块配置,然后运行:

mason update my_brick

这将根据mason.yaml中的配置拉取最新的砖块版本。

总结

通过上述步骤,你可以使用mason_cli命令行工具来管理和生成Flutter项目中的砖块,从而快速构建和标准化你的项目结构。这种方法特别适合团队开发,可以确保项目的一致性和可维护性。

回到顶部