Flutter / Dart 多包管理工具 —— Melos 使用指南

🧩 Flutter / Dart 多包管理工具 ------ Melos 使用指南


一、🧠 什么是 Melos

Melos 是 Dart / Flutter 官方推荐的 多 package(monorepo) 管理工具。 常用于管理包含多个 Flutter 模块、子包、插件的整体项目结构。

📘 官方仓库:github.com/invertase/m... 适用于大型 Flutter 工程、组件库、插件集合。


二、🌟 主要功能

功能 说明
🧭 自动识别多包结构 自动扫描多个子 package(模块、plugin、app)
⚙️ 一键执行操作 统一执行测试、格式化、构建、发布等命令
🔗 依赖联动和本地链接 自动建立子包之间的相互依赖关系
🧾 版本号与变更日志管理 自动维护版本与生成 CHANGELOG.md
📚 支持工作区管理 (Monorepo) 管理多个 App + Package 并行开发

三、📁 基础项目结构示例

bash 复制代码
your_repo_root/
├── melos.yaml
├── packages/
│   ├── audio_module/
│   ├── video_module/
│   └── shared_ui/
└── apps/
    ├── mobile_app/
    └── web_app/

四、🧾 melos.yaml 示例配置

yaml 复制代码
name: my_workspace

packages:
  - packages/**
  - apps/**

🗂️ 字段说明:

字段 含义
name 工作区名称
packages 指定 Melos 管理的包路径,可用通配符(**)递归匹配

五、⚙️ 常用命令说明

命令 功能说明
melos bootstrap 自动链接依赖包(相当于为所有本地包执行 flutter pub get 并做好依赖联结)
melos run test 在所有子包中执行单元测试
melos version 自动管理所有子包的版本号、生成 CHANGELOG.md
melos run format 统一格式化所有 package
melos publish 批量发布多包
melos exec <cmd> 在所有 package 中执行自定义命令(例如编译、分析)

六、🚀 实际操作示例

1️⃣ 初始化多包环境

bash 复制代码
cd your_repo_root
melos bootstrap

自动安装依赖并链接内部包依赖关系。


2️⃣ 创建一个包模块

bash 复制代码
cd your_repo_root
mkdir -p packages/audio_module
cd packages/audio_module
flutter create --template=package .

--template=package 表示生成一个 Flutter 包模板(非完整应用)。


3️⃣ 重新建立依赖关系

bash 复制代码
flutter pub run melos bootstrap

确保新建模块与其他模块正确联动。


4️⃣ 执行测试

bash 复制代码
melos run test

自动运行工作区下所有包的测试。


5️⃣ 管理版本号

bash 复制代码
melos version

自动递增版本并生成统一的变更日志。


七、💡 Tips & 最佳实践

场景 建议做法
多人协作大项目 使用 monorepo + melos 管理模块、统一依赖版本
插件库开发 每个插件独立 package,便于独立发布
CI/CD 集成 可在 CI 脚本中使用 melos bootstrapmelos versionmelos publish 自动化流程
局部执行 通过 --scope 参数指定执行目标包,如: melos run test --scope="audio_module"

八、📎 常用命令速查表

命令 说明
melos list 列出所有识别到的包
melos bootstrap 链接依赖(顶级命令)
melos run <command> 执行定义的 melos 命令
melos exec <cmd> 在每个包目录执行指定命令
melos clean 清理 Melos 缓存
melos version 自动递增版本号并生成CHANGELOG
melos publish 批量发布包(可结合 CI 自动化)

九、📑 小结

项目 内容
工具名称 Melos
核心作用 Flutter/Dart 多包(Monorepo)统一管理
配置文件 melos.yaml
关键命令 bootstraprunversion
推荐结构 packages/**apps/**
典型用途 组件库管理、插件集成、跨模块同步

相关推荐
晚烛11 分钟前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售
一起养小猫25 分钟前
Flutter for OpenHarmony 实战:扫雷游戏完整开发指南
flutter·harmonyos
晚烛1 小时前
CANN 赋能智慧医疗:构建合规、高效、可靠的医学影像 AI 推理系统
人工智能·flutter·零售
晚霞的不甘1 小时前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
小哥Mark3 小时前
Flutter开发鸿蒙年味 + 实用实战应用|绿色烟花:电子烟花 + 手持烟花
flutter·华为·harmonyos
一只大侠的侠4 小时前
Flutter开源鸿蒙跨平台训练营 Day 3
flutter·开源·harmonyos
一只大侠的侠5 小时前
【Harmonyos】Flutter开源鸿蒙跨平台训练营 Day 2 鸿蒙跨平台开发环境搭建与工程实践
flutter·开源·harmonyos
微祎_6 小时前
Flutter for OpenHarmony:构建一个 Flutter 平衡球游戏,深入解析动画控制器、实时物理模拟与手势驱动交互
flutter·游戏·交互
ZH15455891317 小时前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
renke33648 小时前
Flutter for OpenHarmony:构建一个 Flutter 色彩调和师游戏,RGB 空间探索、感知色差计算与视觉认知训练的工程实现
flutter·游戏