Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Melos x Pub Workspaces で 沢山のアプリとパッケージを管理するのに 苦労した話
Search
Hayami Shuhei
April 10, 2025
Programming
1
49
Melos x Pub Workspaces で 沢山のアプリとパッケージを管理するのに 苦労した話
YOUTRUST x Omiai Flutter LT会
Hayami Shuhei
April 10, 2025
Tweet
Share
More Decks by Hayami Shuhei
See All by Hayami Shuhei
Claude Agent SDK を使ってみよう
hyshu
0
1.5k
Flutterと Vibe Coding で個人開発!
hyshu
1
320
BLoCパターンとflutter_bloc
hyshu
0
120
Jasprが凄い話
hyshu
0
340
CanvasKitの描画の仕組みを調べてみる
hyshu
0
170
Other Decks in Programming
See All in Programming
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
120
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
18
9.5k
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
450
CSC305 Lecture 12
javiergs
PRO
0
250
CSC509 Lecture 10
javiergs
PRO
0
170
CSC305 Lecture 14
javiergs
PRO
0
220
CSC305 Lecture 13
javiergs
PRO
0
350
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
270
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.7k
Towards Transactional Buffering of CDC Events @ Flink Forward 2025 Barcelona Spain
hpgrahsl
0
120
オンデバイスAIとXcode
ryodeveloper
0
390
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Why Our Code Smells
bkeepers
PRO
340
57k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Writing Fast Ruby
sferik
630
62k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Code Review Best Practice
trishagee
72
19k
Facilitating Awesome Meetings
lara
57
6.6k
Statistics for Hackers
jakevdp
799
220k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Transcript
YOUTRUST x Omiai Flutter LTձ 2025/04/11 aq (Hayami Shuhei) Melos
x Pub Workspaces Ͱ ࢁͷΞϓϦͱύοέʔδΛཧ͢Δͷʹ ۤ࿑ͨ͠
എܠ • ݱࡏ6ຊͷΞϓϦΛެ։த • ͝ͱʹύοέʔδ͚ • αʔόʔଆD a rt •
ύοέʔδ100ݸҎ্ʹ વdependenciesͷखಈཧແཧ
എܠ • ͦ͜Ͱɺ1ͭͷMelosͰશͯͷdependenciesͷόʔδ ϣϯΛ·ͱΊͯཧ • rpsύοέʔδShellεΫϦϓτͱΈ߹Θͤɺ Θ͟Θ͟ݸผͷΞϓϦʹҠಈ͠ͳͯ͘ f lutter run
Ұׅ git st a tus & commit & push ͕ग़དྷΔ։ൃମ੍ʹ
• ͦΜͳதɺD a rt 3.6.0Ͱ Pub Worksp a ces ͕ొ͠ɺ
Melos 7.0.0-dev ͰରԠ͞ΕΔΑ͏ʹʢࠓͷ1݄ͷʣ • 100ݸҎ্ͷpubspec.lockͱ pubspec_overrides.y a ml ͕ Ұͭͷpubspec.lockʹͳΓ melos bootstr a p ߴԽ • ૣಋೖͯ͠ΈΔ͜ͱʹ
None
ͦͷ݁Ռ… શͯͷΞϓϦͱύοέʔδͷґଘ͕ؔҰͭͷ pubspec.lockʹʂ વ͜ͷ··ΞϓϦΛϦϦʔε͢Δͱɺ શͯͷΞϓϦʹશͯͷίʔυؚ͕·ΕΔΑ͏ʹͳͬͯ͠·͏…
ͦ͜ͰΞϓϦ͝ͱʹ Pub Worksp a ces Λઃஔͯ͠ΈΔ - pubspec.yaml (Melos &
Pub Workspaces) - appA/ - pubspec.yaml (Pub Workspaces) - (directories per package) - pubspec.yaml - appB/ - pubspec.yaml (Pub Workspaces) - (directories per package) - pubspec.yaml Ճ Ճ
- pubspec.yaml (Melos & Pub Workspaces) - pubspec.lock - appA/
- pubspec.yaml (Pub Workspaces) - (directories per package) - pubspec.yaml - appB/ - pubspec.yaml (Pub Workspaces) - (directories per package) - pubspec.yaml melos bootstr a p ࣮ߦ࣌
- pubspec.yaml (Melos & Pub Workspaces) - appA/ - pubspec.yaml
(Pub Workspaces) - pubspec.lock - (directories per package) - pubspec.yaml - appB/ - pubspec.yaml (Pub Workspaces) - (directories per package) - pubspec.yaml appA Ͱ f lutter run ࣮ߦ࣌
ʮ͜Ε৽͍͠։ൃମݧʯͱɺ ࣌ a qͷςϯγϣϯ࠷ߴை͕ͩͬͨ…
ͳΜͱ D a rt 3.6.1 Ͱ͜ͷΓํΤϥʔ͕ग़ΔΑ͏ʹ Θ͔ͣޙͷग़དྷࣄͰ͋ͬͨ
• ͜ͷΤϥʔॲཧ͕Ճ͞Εͨཧ༝ΛIssue͔ΒௐͯΈΔͱɺ ґଘؔղܾͷෆ۩߹ճආ͕తͩͬͨ • melos bootstr a p όʔδϣϯ౷Ұ͢Δ͚ͩͳͷͰେৎ https://github.com/d
a rt-l a ng/pub/pull/4446 https://d a rt.dev/tools/pub/worksp a ces#str a y- f iles
pubϦϙδτϦʔΛfork͠ɺΤϥʔϋϯυϦϯάΛίϝϯτΞτ melos༻pubspec.y a mlͱಉ͡֊ʹΫϩʔϯ͠ɺ d a rt run pub/bin/pub.d a
rt run melos Ͱ࣮ߦՄೳʹ͢Δ
melosͰ d a rt pub ͕ΘΕ͍ͯΔͷͰforkͯ͠ d a rt run
pub/bin/pub.d a rt ʹஔ dev_dependenciesʹՃ͠ (p a th: p a ck a ges/melos) rpsʹొͯ͠ rps melos <໋ྩ> ͰݺΔΑ͏ʹͨ͠
pubspec.y a mlʹҎԼͷઃఆΛՃ (rps d a rt pub glob a
l a ctiv a te)
ཧͷMelos͕ੜ • rps melos bs ͰશύοέʔδͷόʔδϣϯΛ౷Ұ • ͍ͭͰʹෆཁͳpubspec.lockͱ.d a rt_toolsআͯ͘͠ΕΔ
• forkͨ͠pubͱmelosmelosίϚϯυͰͷΈ༻͢ΔͷͰɺ f lutterd a rtͷϏϧυʹӨڹΛ༩͑ͳ͍ • (ࣗݾͰ͓ئ͍͍ͨ͠·͢)
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ X: @aqhayami GitHub: @hyshu ↑ forkͨ͠pubͱmelos͕ ɹ͋ΔͷͰࢼ͍ͨ͠ํੋඇ