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.pswp.cn/diannao/79572.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79572.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/79572.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

4.黑馬學習筆記-SpringMVC(P43-P47)

1.SpringMVC簡介 SpringMVC技術(更少的代碼,簡便)與servlet技術功能相同,屬于web層開發技術。 SpringMVC是一種基于java實現MVC模型的輕量級web框架。 輕量級指的是(內存占用比較低,運行效率高)…

【特殊場景應對1】視覺設計:信息密度與美學的博弈——讓簡歷在HR視網膜上蹦迪的科學指南

寫在最前 作為一個中古程序猿,我有很多自己想做的事情,比如埋頭苦干手搓一個低代碼數據庫設計平臺(目前只針對寫java的朋友),比如很喜歡幫身邊的朋友看看簡歷,講講面試技巧,畢竟工作這么多年,也做到過高管,有很多面人經歷,意見還算有用,大家基本都能拿到想要的offe…

CentOS 7 linux系統從無到有部署項目

環境部署操作手冊 一、Maven安裝與配置 1. 下載與解壓 下載地址:https://maven.apache.org/download.cgi?spm5238cd80.38b417da.0.0.d54c32cbnOpQh2&filedownload.cgi上傳并解壓解壓命令: tar -zxvf apache-maven-3.9.9-bin.tar.gz -C /usr/loc…

Odoo:免費開源的軋制品行業管理軟件

Odoo免費開源的軋制品行業管理軟件能夠幫助建材、電線電纜、金屬、造紙包裝以及紡織品行業提高韌性和盈利能力,構筑美好未來。 文 | 開源智造(OSCG)Odoo金牌服務 提高供應鏈韌性,賦能可持續發展 如今,金屬…

51單片機實驗二:數碼管靜態顯示

目錄 一、實驗環境與實驗器材 二、實驗內容及實驗步驟 1.單個數碼管顯示 2.六個數碼管依次從0~F變換顯示 3.proteus仿真 一、實驗環境與實驗器材 環境:Keli,STC-ISP燒寫軟件,Proteus. 器材:TX-1C單片機(STC89C52RC…

學術AI工具推薦

一、基礎信息對比 維度知網研學AI(研學智得AI)秘塔AIWOS AI開發公司同方知網(CNKI)上海秘塔網絡科技Clarivate Analytics是否接入DeepSeek? 深度集成(全功能接入DeepSeek-R1推理服務)? 通過API接入DeepS…

冰川流域提取分析——ArcGIS pro

一、河網提取和流域提取視頻詳細GIS小熊 || 6分鐘學會水文分析—河網提取(以宜賓市為例)_嗶哩嗶哩_bilibili 首先你要生成研究區域DEM,然后依次是填洼→流向→流量→柵格計算器→河網分級→柵格河網矢量化(得到河網.shp&#xff…

【物聯網-RS-485】

物聯網-RS-485 ■ RS-485 連接方式■ RS-485 半雙工通訊■ RS-485 的特點 ■ RS-485 連接方式 ■ RS-485 半雙工通訊 一線定義為A 一線定義為B RS-485傳輸方式:半雙工通信、(邏輯1:2V ~ 6V 邏輯0:-6V ~ -2V)這里的電平…

解析檢驗平板:設備還是非設備?深入了解其功能與應用(北重鑄鐵平臺廠家)

檢驗平板通常被歸類為設備,因為它們具有特定的功能,并且被用于測試和評估其他設備或產品的性能和質量。檢驗平板通常具有平坦的表面,用于放置要進行測試或檢驗的物品。它們可以用于測量尺寸、形狀、平整度、表面光潔度等參數。 檢驗平板的應…

6.數據手冊解讀—運算放大器(二)

目錄 6、細節描述 6.1預覽 6.2功能框圖 6.3 特征描述 6.3.1輸入保護 6.3.1 EMI抑制 6.3.3 溫度保護 6.3.4 容性負載和穩定性 6.3.5 共模電壓范圍 6.3.6反相保護 6.3.7 電氣過載 6.3.8 過載恢復 6.3.9 典型規格與分布 6.3.9 散熱焊盤的封裝 6.3.11 Shutdown 6.4…

2025年03月中國電子學會青少年軟件編程(Python)等級考試試卷(六級)真題

青少年軟件編程(Python)等級考試試卷(六級) 分數:100 題數:38 答案解析:https://blog.csdn.net/qq_33897084/article/details/147341458 一、單選題(共25題,共50分) 1. 在tkinter的…

centos與ubuntu系統版本介紹

CentOS與Ubuntu系統鏡像版本介紹 前言CentOS官網鏡像歷史版本阿里云鏡像總結 Ubuntu官網系統總結 最后 前言 在我準備給虛擬機(我使用的是vritualbox)安裝一個Linux系統,不知道該選擇centos還是Ubuntu。并且在下載鏡像的過程中對系統的版本、…

Go 語言中的 package main、 func main() 和main.go的使用規范

本文旨在解釋 Go 語言中 package main 、 func main() 和main.go的關系及其使用規則,解決如下典型問題: 是否可以在一個項目中定義多個 func main()?是否可以在非 package main 中寫 func main()?多個文件中都寫 func main() 會沖突嗎?main.go是必須的命名方式嗎?正確的結…

MySQL啟動Failed to start LSB: start and stop MySQL

錯誤呈現 數據庫初始化 刪除 mysql/data中的文件 在對數據庫重新進行初始化之前,需要事先刪除 /usr/local/mysql/data目錄下已經生成的文件。 查看 ll /usr/local/mysql/data/#刪除 rm -rf /usr/local/mysql/data/* 刪除 使用以下命令對數據庫初始化 /usr/local/m…

服務器架構:SMP、NUMA、MPP及Docker優化指南

文章目錄 引言 一、服務器架構基礎1. SMP(對稱多處理,Symmetric Multiprocessing)2. NUMA(非統一內存訪問,Non-Uniform Memory Access)3. MPP(大規模并行處理,Massively Parallel Pr…

【HarmonyOS NEXT】多目標產物構建實踐

目錄 什么是多產物構建 如何定義多個構建產物 如何在項目中使用 參考文章 什么是多產物構建 在鴻蒙應用開發中,一個應用可定義多個 product,每一個 product 對應一個定制的 APP 包,每個 product 中支持對 bundleName、bundleType、輸出產…

Django視圖(未分離)

ListView、DetailView、CreateView、UpdateView 和 DeleteView 是 Django 框架中基于類的通用視圖(Class-Based Generic Views) 配置 URL 路由 在 urls.py 中為這些視圖配置路由: from django.urls import path from .views import (PostLis…

如何通過自動化解決方案提升企業運營效率?

引言 在現代企業中,運營效率直接影響著企業的成本、速度與競爭力。尤其是隨著科技的不斷發展,傳統手工操作和低效的流程逐漸無法滿足企業的需求。自動化解決方案正成為企業提升運營效率、降低成本和提高生產力的關鍵。無論是大型跨國公司,還…

3.8/Q1,GBD數據庫最新文章解讀

文章題目:Regional and National Burden of Traumatic Brain Injury and Spinal Cord Injury in North Africa and Middle East Regions, 1990-2021: A Systematic Analysis for The Global Burden of Disease Study 2021 DOI:10.1007/s44197-025-00372-…

C#中擴展方法和鉤子機制使用

1.擴展方法: 擴展方法允許向現有類型 “添加” 方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。擴展方法是一種特殊的靜態方法,但可以像實例方法一樣進行調用。 使用場景: 1.當無法修改某個類的源代碼&#…