使用 Mason 创建自己的 Flutter brick

news2024/7/7 16:43:49

使用 Mason 创建自己的 Flutter brick

alt

原文 https://medium.com/gytworkz/create-your-own-flutter-brick-using-mason-7abc70d0324e

前言

谁不喜欢用最少的努力完成大部分事情呢?我当然知道! !Mason 帮我完成了几个简单的步骤。

在本文中,我们将看到如何创建一个冻结兼容的功能块与适当的文件夹结构。

我们开始吧! ! !

正文

Introduction 简介

alt

Mason package

Mason 包裹

Mason 是一个开源工具,可以从称为 brick 的自定义模板中生成代码。对于那些一遍又一遍地编写相同代码的开发人员,或者那些寻找定制可重用模板的方法的开发人员来说,这是很有帮助的。

简而言之,您可以为项目创建自己的文件夹结构和文件,并在所有项目中全局使用它。

Installation 安装

Mason 可以通过 pub.dev 或自制软件安装。

# Install from pub.dev

$ dart pub global activate mason


# Install from homebrew

$ brew tap felangel/mason

$ brew install mason

这样 Mason 就可以在全球范围内使用,你可以通过终端访问 Mason。

从 Mason 开始

首先让我们创建一个文件夹,我将它命名为 mason_brick

在 Vscode 打开文件夹并使用终端运行

$ mason init

这个命令将在你的工作目录中初始化 mason,它将生成一个 mason.yaml 和一个. mason 目录。

alt

Yaml 文件的工作原理类似于 pubspec.yaml,您可以在其中添加来自 github 或直接来自本地目录的所有 brick 块

alt

Mason Yaml 档案

创建新模板

为了创建一个新的模板,我们将创建一个名为 brick 的新文件夹

导航到 brick 块文件夹使用

cd bricks

使用 mason new {{ brick name }}命令创建一个新模板

mason new bloc_feature

这将创建几个文件和文件夹,如下所示,

alt

文件夹内容

  1. __brick__ : 此文件夹将包含创建 brick 所需的模板文件和文件夹
  2. brick.yaml : 该文件包含创建 brick 所需的包和变量
  3. CHANGELOG.md : 此文件用于记录您在后续迭代中所做的更改。
  4. LICENSE : 该文件包含 brick 块的许可证详细信息
  5. README.md : 此文件包含块的标记格式的文档

模板结构

考虑到我们的功能名称是反馈的文件夹结构如下

feedback
|- feeback_bloc
|   |- feedback_bloc.dart
|   |- feedback_event.dart
|   |- feedback_state.dart
|- screen
|   |- feedback_screen.dart
|- widget
|   |- atom
|   | |- feedback_atom.dart
|   |- molecule
|   | |- feedback_molecule.dart
|   |- organism
|   | |- feedback_widget.dart

真正的结构应该是这样的。

alt

Mason 使用八字胡模板语法使开发人员能够创建和维护称为 brick 的复杂模板,而不必编写任何生成器代码。

{{ name }}将使用我们将从终端输入的 name 变量进行更改。

基本概念是编写与通常编写的代码相同的代码,只是用{{ variable }}修改变量

{{ name } screen.dart 的示例代码结构

有一些 extension ,例如 pascalCase、 snakeCase,可以根据需要格式化字符串。

一旦对代码结构感到满意。

打开 brick.yaml 文件,添加参数,

我们只有一个参数,即{{ name }}

alt

将 brick 的路径添加到 mason.yaml

alt

终于跑了

mason get

这将向项目添加 block_Feature。

你差不多完成了! ! !

现在要做的最后一件事是创建模板

mason make bloc_feature

这将要求变量数据。

alt

terminal command (mason make bloc_feature)

终端命令(mason make block_Feature)

假设我们正在命名特性反馈,文件夹结构将如下所示

alt

feedback folder structure

反馈文件夹结构反馈文件夹结构

要在所有项目中使用它,只需通过

mason add --global bloc_feature

结束语

如果本文对你有帮助,请转发让更多的朋友阅读。

也许这个操作只要你 3 秒钟,对我来说是一个激励,感谢。

祝你有一个美好的一天~

猫哥课程
猫哥课程

© 猫哥

  • 微信 ducafecat

  • https://wiki.ducafecat.tech

  • https://video.ducafecat.tech

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

观察者(订阅)模式

文章目录思考观察者模式1.观察者模式的本质2.何时选用观察者模式3.优缺点4.实现手写观察者模式JDK观察者模式思考观察者模式 观察者模式是典型的发布订阅模式,当一个东西有变化了,就通知所有订阅他的人 1.观察者模式的本质 观察者模式的本质:触发联动。 …

什么是等保

等保的全称是信息安全等级保护,是《网络安全法》规定的必须强制执行的,保障公民、社会、国家利益的重要工作。以下是一些有关等保的基本知识,希望通过这些知识能让大家更深刻地认识到等级保护的重要性。 等级保护定义 信息安全等级保护是指…

2.Conv2d实现

[C 基于Eigen库实现CRN前向推理] 第二部分:Conv2d实现 前言:(Eigen库使用记录)第一部分:WavFile.class (实现读取wav/pcm,实现STFT)第二部分:Conv2d实现第三部分:TransposedConv2d实现 (mimo,padding,stride,dilatio…

智工教育:注册计量师职业资格条件已改革!

第一,报名条件发生变化 注册计量师职业资格考试,取消了一级注册计量师职业资格考试报考条件中对工作年限的要求。 凡遵守中华人民共和国宪法、法律、法规,恪守职业道德,诚实守信,从事计量技术工作,符合注册…

Codeforces Round #290 (Div. 2) C. Fox And Names

翻译: Fox Ciel将发表一篇关于FOCS (Fox操作的计算机系统,发音:“Fox”)的论文。她听到一个谣言:报纸上的作者名单总是按照词典顺序排列的。 在查看了一些例子后,她发现有时这不是真的。在一些论文中,作者的名字没有按照正常意义…

【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现)

📋📋📋本文目录如下:⛳️⛳️⛳️ ​ 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 随着传感器检测技术、智能控制技术和材料技术的快速发展,四轴无人机及其配套系统的发展越来越成熟。无人机遥感系统具有成本低、…

Java数据结构之Map与Set

文章目录一、搜索(一)概念及场景(二)模型二、Map(一)介绍(二)Map常用方法说明1.需要注意的几个点2.特别注意的几个方法(1)V getOrdefault(Object key,V defaultValue),这…

【DL with Pytorch】第 5 章 :风格迁移

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

[JavaEE]计算机是如何工作的

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. javaEE概述 2. 计算机发展史 3. 冯诺依曼体系 …

java面试强基(15)

说明一下public static void main(String args[])这段声明里每个关键字的作用? ​ public: main方法是Java程序运行时调用的第一个方法,因此它必须对Java环境可见。所以可见性设置为 pulic. ​ static: Java平台调用这个方法时不会创建这个类的一个实例&#xf…

如何将带GPS的网络化的软件定义无线电接收机应用于分布式和移动频谱监测?(二)

GPS定位和测向的四种技术 知道感兴趣信号的位置对于许多应用很重要。军事用户获得了更好的态势感知能力,诸如机场或公用事业基础设施之类的敏感设施可以找到RF干扰源,电信公司可以识别恶意发射机或其他干扰其覆盖范围的设备。通过嵌入式GPS功能了解测量…

中国什么时候能办世界杯?

自从1930年在乌拉圭举办了第一届世界杯以来,到现在已经成功举办了22届,然而这22届里,光是欧洲就举办了11届,南美洲5届,中北美洲3届,亚洲2届,非洲1届。 说到这里不难发现,他们之间分布…

Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户

一,引言 今天我们继续讲解 Azure DevOps Server 的内容,对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外,还有没有其他方式,Azure DevOps 需要加入Azure ADDS 服务域后,Azure DevOps Server 的管理…

[附源码]计算机毕业设计springboot基于vue+mysql开发的考试系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

图扑软件荣获第七届“创客中国”中小企业创新创业大赛优胜奖!

2022 年 11 月 17 日,由工业和信息化部、财政部共同主办的第七届“创客中国”中小企业创新创业大赛全国总决赛在浙江杭州落下帷幕。 本次《第七届“创客中国”中小企业创新创业大赛》举办目的,意在加大优质中小企业梯度培育力度,进一步提升中…

ProcessDB实时/时序数据库——ODBC之连接数据库

目录 前言 一、安装ProcessDB-ODBC驱动 1.下载ProcessDB-ODBC驱动 2.安装ProcessDB-ODBC驱动 二、配置ProcessDB数据源 三、JAVA连接ProcessDB数据库 前言 ProcessDB实时/时序数据库支持ODBC连接数据库,接下来将和大家分享下如何使用ODBC操作ProcessDB实时/时…

Java基础之《netty(5)—NIO之Selector》

一、基本介绍 1、Java的NIO,用非阻塞的IO方式,可以用一个线程,处理多个的客户端连接,就会使用到Selector(选择器)。 2、Selector能够检测多个注册的通道上是否有事件发生(注意:多个…

[附源码]SSM计算机毕业设计新闻发布和评论管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【冰糖Python】Python 中的 assert 语句

assert 判断一个表达式的真假,在表达式条件为 false 的时候触发异常,返回错误 具体用法: assert expression assert expression [, arguments] 实际用例: 注意以上使用: 1、条件为True时,assert不执行…

基于PHP+MySQL高校教务选课系统的设计与实现

兴趣是最好的老师,只有学生选择了自己感兴趣的课程才能够更好的进行学习,目前有很多高校的选课中出现很多问题,如学生对开设的课程不了解,代选课程等等,这些问题多而繁杂,不容易解决。 本系统就是为了学生开放的在线选课系统,而网络选课系统是帮助学生了解到所学课程的内容,多自…