2025年用 Melos 管理多包 Flutter 项目

用 Melos 管理多包 Flutter 项目外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img nQLoKONz 31 https ducafecat tech 2021 06 08 translation managing multi package flutter projects with melos 2021 06 08 06 23 31 png 猫哥说

大家好,我是讯享网,很高兴认识大家。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQLoKONz-31)(https://ducafecat.tech/2021/06/08/translation/managing-multi-package-flutter-projects-with-melos/2021-06-08-06-23-31.png)]

猫哥说

我正在的写的新闻客户端代码模板,只是适合最多 100 pages 的轻巧型单包项目。

但是页面再多的话,说明你的项目业务、功能、组件足够复杂,项目也庞大,参与的人也多,这样的话项目就需要多包架构了,做过 android 的朋友最能体会了。

这篇文章就是介绍如何用 melos 来管理多包项目,看看对你是否有帮助吧。

老铁记得 转发 ,猫哥会呈现更多 Flutter 好文~~~~

微信 flutter 研修群 ducafecat

原文

代码

https://github.com/SAGARSURI/melos_demo

integrate_melos 分支是完成的代码

参考

  • https://docs.page/invertase/melos
  • https://invertase.io/

正文

大多数情况下,当你创建一个 flutter 项目。你使用一个包。这个项目由一个 pubspec.yaml,lib 文件夹组成。您将所有的特性和实用程序放在同一个包中。但也有一些项目将它们的特性和实用程序分解成多个包。这有助于提高关注点分离,并允许团队开源他们的一些软件包。下面是一个多包项目的示意图:


讯享网

在这里,我们将项目分为三个层次。第一层是根项目,它包含适用于项目中所有不同包的通用配置。第二层拥有独立的功能包,它们不相互依赖。第三层由多个功能包中使用的实用工具包组成。我不会深入探讨如何创建或结构一个多包 flutter 项目。本文将着重于解决一个典型的多包 flutter 项目所面临的特殊挑战。

挑战

在一个简单的程序包中,运行下面的任务是非常简单的:

  • flutter pub get
  • flutter test
  • flutter analyze
  • Generating code coverage i.e flutter test --coverage

但是在一个多包的 flutter 项目中运行相同的任务是具有挑战性的,因为你需要在项目中的每个包中运行这些任务,并在任务完成后给出总结结果。现在我们知道挑战是什么了。让我们来讨论一下解决这个问题的可能方法。

解决方案

有两种可能的解决方案来解决这个问题。让我们看看第一个:

  1. 为各种任务编写 bash 脚本

这绝对是一个解决方案,但不是一个明智的解决方案。您需要首先编写一个脚本,找出项目中的所有包,并在其中运行上述任务之一。您还需要确保以漂亮的格式显示输出,以使内容具有可读性。如果您更喜欢 GUI,那么您需要在 IDE 中创建某种配置,以便通过 GUI 运行脚本

  1. 将 Melos 整合到你的项目中

这是一个比我强烈推荐的第一个方案更聪明的解决方案。因此,让我们详细讨论什么是 Melos,以及如何将其集成到您的多包项目中

介绍 Melos

Melos 是一个 CLI 工具,用于管理多个包的 flutter/飞镖项目。

Melos 是由一个著名的小组在 flutter 社区即 invertase。你可以在他们的网站上阅读关于 Melos 的详细信息,但是这里有一个 Melos 提供的特性的快速列表:

  • Automatic versioning & changelog generation. 自动版本控制和更新日志生成
  • Automated publishing of packages to 将包自动发布到 pub.dev.
  • Local package linking and installation. 本地包的链接和安装
  • Executing simultaneous commands across packages. 跨包执行同步命令
  • Listing of local packages & their dependencies. 本地包及其依赖项的列表

现在让我们看看如何使用 Melos 执行上述所有任务。

  • 注意: 如果你想在实践中学习,请下载入门课程。还有另一个分支,您可以在其中找到项目的最终版本。

https://github.com/SAGARSURI/melos_demo

安装 Melos

让我们先安装 Melos。我假设您已经安装了 Flutter SDK,并将 Flutter 和 Dart 路径设置为 bash_profile。在终端中运行以下命令:

dart pub global activate melos 

讯享网

下一步是在 IDE 中打开初学者项目。我更喜欢使用 Intellij,并且会向你展示一些由 Melos 提供的非常棒的 GUI 特性。项目结构应如下:

[外链图片转存失败,源站可能

小讯
上一篇 2025-03-29 21:49
下一篇 2025-03-16 14:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/56112.html