Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Melos x Pub Workspaces で 沢山のアプリとパッケージを管理するのに 苦労した話

Melos x Pub Workspaces で 沢山のアプリとパッケージを管理するのに 苦労した話

YOUTRUST x Omiai Flutter LT会

Avatar for Hayami Shuhei

Hayami Shuhei

April 10, 2025
Tweet

More Decks by Hayami Shuhei

Other Decks in Programming

Transcript

  1. YOUTRUST x Omiai Flutter LTձ 2025/04/11 aq (Hayami Shuhei) Melos

    x Pub Workspaces Ͱ ୔ࢁͷΞϓϦͱύοέʔδΛ؅ཧ͢Δͷʹ ۤ࿑ͨ͠࿩
  2. എܠ • ݱࡏ6ຊͷΞϓϦΛެ։த • ੹຿͝ͱʹύοέʔδ෼͚ • αʔόʔଆ΋D a rt •

    ύοέʔδ਺͸100ݸҎ্ʹ ౰વdependenciesͷखಈ؅ཧ͸ແཧ
  3. • ͦΜͳதɺ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 ΋ߴ଎Խ • ૣ଎ಋೖͯ͠ΈΔ͜ͱʹ
  4. ͦ͜ͰΞϓϦ͝ͱʹ 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 ௥Ճ ௥Ճ
  5. - 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 ࣮ߦ࣌
  6. - 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 ࣮ߦ࣌
  7. 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 <໋ྩ> Ͱݺ΂ΔΑ͏ʹͨ͠
  8. ཧ૝ͷMelos͕஀ੜ • rps melos bs ͰશύοέʔδͷόʔδϣϯΛ౷Ұ • ͍ͭͰʹෆཁͳpubspec.lockͱ.d a rt_tools΋࡟আͯ͘͠ΕΔ

    • forkͨ͠pubͱmelos͸melosίϚϯυͰͷΈ࢖༻͢ΔͷͰɺ f lutter΍d a rtͷϏϧυʹ͸ӨڹΛ༩͑ͳ͍ • (ࣗݾ੹೚Ͱ͓ئ͍͍ͨ͠·͢)