当前位置: 首页 > news >正文

Melos 发布pub.dev

确保登录

置登录状态

按照提示操作,先运行:

bash

dart pub logout

这会清除当前的(损坏的)登录信息。

然后再重新登录:

bash

dart pub login

这一次它应该会在浏览器中打开 Google 登录页面,完成登录后,回到终端应该显示类似:

Successfully authorized.

然后你就可以继续发布了:

手动发布

1. 进入一个子包,比如:
bash
cd packages/xxf_demo
2. 手动发布:

bash

dart pub publish

这个命令执行后,如果你登录成功,会看到一个提示:

Do you want to publish xxf_demo 0.0.2 (y/N)?

你输入 y 才会真正上传。

🧰 Melos 全套实用教程(Flutter Monorepo 管理神器)

🚀 目录:

  1. 什么是 Melos?适合哪些项目?

  2. 安装与初始化

  3. 项目结构推荐

  4. melos.yaml 配置详解

  5. 常用命令讲解(bootstrap、run、exec、publish、version)

  6. 发布多个 package 到 pub.dev(自动识别改动 + 顺序)

  7. 高级技巧(版本管理 / script / ignore / Git hooks)

  8. 常见问题解答


1️⃣ 什么是 Melos?

Melos 是 Dart/Flutter 官方推荐的 Monorepo 管理工具,适合你有如下需求:

✅ 管理多个 Flutter/Dart 包(如 utils、plugin、theme)
✅ 模块间有依赖关系
✅ 想一次安装依赖、一次测试、一次发布多个模块
✅ 想提高团队协作效率(每人写自己模块)


2️⃣ 安装与初始化

✅ 安装:

 

dart pub global activate melos

确保你把 global package 加进了 PATH:

export PATH="$PATH":"$HOME/.pub-cache/bin"

✅ 初始化项目

在项目根目录添加:

melos init

它会创建:

melos.yaml


3️⃣ 推荐项目结构

 

复制编辑

my_repo/

├── melos.yaml
├── packages/

   │ ├── my_utils/

   │ ├── my_theme/

├── plugins/

   │ ├── my_plugin/

├── examples/

每个模块都是合法的 Flutter/Dart package。


4️⃣ melos.yaml 配置详解

yaml
name: demo
packages:- apps/*- packages/*
#ignore:
#  - "**/build/**"
#  - "**/example/**"     # 不希望被识别为 package 的路径scripts:format:run: "dart format ."analyze:run: "flutter analyze"
  • name:工程名

  • packages:需要管理的模块路径(支持 glob)

  • ignore:排除的路径

  • scripts:你定义的统一脚本命令(配合 melos run 使用)


5️⃣ 常用命令详解

✅ 安装依赖(并自动链接本地依赖)

bash
melos bootstrap

类似于 yarn install,自动安装所有模块依赖,并把本地依赖 link 起来。


✅ 执行统一命令(如测试、分析、构建)

bash

melos run analyze

会在每个 package 执行对应命令(来自 melos.yaml 的 scripts

也可指定某个模块:

bash

melos run analyze --scope=my_utils

✅ 在每个模块执行任意命令

bash

melos exec -- flutter pub get

也可以:

bash

melos exec --scope="my_utils" -- dart pub publish --dry-run

6️⃣ 发布到 pub.dev(批量)

1. 检查哪些模块有更新:

bash

melos publish --dry-run

会列出所有版本有变动的包,以及顺序。

2. 发布所有模块:

bash
melos publish --yes

会跳过未修改的包,自动按依赖顺序发布。


7️⃣ 高级技巧

✅ 自动 bump 版本号并生成 changelog

bash

melos version

支持参数:

bash

melos version --no-git-tag-version melos version --yes

✅ 统一定义脚本

yaml
scripts: test: run: "flutter test" format: run: "dart format ." pub_publish: run: "dart pub publish --dry-run"

调用:

bash
melos run pub_publish

8️⃣ 常见问题解答

问题解答
模块之间依赖怎么办?Melos 自动 link 本地依赖(bootstrap)
可以按模块单独发布吗?可以:cd package && dart pub publish 或使用 --scope
支持私有包吗?支持配置私有 registry(pub.dev 镜像、内网)
一定要 pubspec.yaml 吗?是的,每个 module 必须是合法 Dart package
可以自动生成 changelog 吗?可以结合 conventional commits + melos version 实现


http://www.mrgr.cn/news/98370.html

相关文章:

  • 30学Java第十天——类加载的过程
  • 【动手学强化学习】番外7-MAPPO应用框架2学习与复现
  • AWS Redshift的使用场景及一些常见问题
  • 绿算轻舟系列FPGA加速卡:驱动数字化转型的核心动力
  • electron-builder参数详解
  • ukui-greeter编译与安装
  • C/C++的数据类型
  • 数据库原理及应用mysql版陈业斌实验三
  • mongodb 安装配置
  • AI 项目详细开发步骤指南
  • antv x6使用(支持节点排序、新增节点、编辑节点、删除节点、选中节点)
  • 【Java集合】HashMap源码深度分析
  • 大数据面试问答-批处理性能优化
  • poi-tl
  • Spark-SQL核心编程(一)
  • 【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(一)
  • Kubernetes Operator 是什么,以及它们的用途
  • 基于瑞芯微RK3576 国产ARM八核2.2GHz A72 NPU 6T AI——MQTT通信方案
  • #4 我们为什么使用物联网? 以及 物联网的整体结构
  • 优先级队列(堆二叉树)底层的实现: