[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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 项目中运行相同的任务是具有挑战性的,因为你需要在项目中的每个包中运行这些任务,并在任务完成后给出总结结果。现在我们知道挑战是什么了。让我们来讨论一下解决这个问题的可能方法。

解决方案
有两种可能的解决方案来解决这个问题。让我们看看第一个:
- 为各种任务编写 bash 脚本
这绝对是一个解决方案,但不是一个明智的解决方案。您需要首先编写一个脚本,找出项目中的所有包,并在其中运行上述任务之一。您还需要确保以漂亮的格式显示输出,以使内容具有可读性。如果您更喜欢 GUI,那么您需要在 IDE 中创建某种配置,以便通过 GUI 运行脚本
- 将 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 特性。项目结构应如下:
[外链图片转存失败,源站可能

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