ブログ投稿シリーズ「Ledger Live Monorepo Project」の XNUMX 番目のエントリ。Ledger 開発者が、Ledger Live コードベースの Mono リポジトリへの大規模な移行のストーリーを語ります。 パート 1 を見逃した場合は、ここでチェックしてください。
モノリポジトリ アーキテクチャが実行可能なソリューションであることを確立した後、計画を実行するために利用可能なツールの調査を開始しました。
複数のプロジェクトを扱う
Ledger Live チームでは、JavaScript エコシステム内をナビゲートしますが、幸いなことに、パッケージ マネージャーを使用して複数のプロジェクトを処理するいくつかの方法をすでに知っていました。 考えられる解決策には次のようなものがあります。
- NPM (ワークスペースをサポートしていますが、より良い代替手段があります)、
- 糸1 (古くなりすぎ、より優れた、より効率的な代替手段が登場)、
- 糸 ≥ 2 (興味深いアイデアですが、プラグ アンド プレイはどこでも、特に React Native では十分にサポートされていません)、
- PNPM (ワークスペースを念頭に置いて構築されたシンボリックリンク、ディスク効率)。
これらすべてを検討した結果、私たちはこれに行くことにしました PNPM ために:
- ディスク効率 (仮想ディスクを使用します) 店舗 および シンボリックリンク、したがって、パッケージは一度だけダウンロードされ、その後仮想ストアからnode_modulesにシンボリックリンクされます)、
- 速度 (パッケージがキャッシュされるため、その後のインストールははるかに高速になります)、
- ワークスペース/モノリポジトリ アーキテクチャ (エイリアス、オーケストレーションなど) のサポートが組み込まれています。
紙の上に PNPM これは絶対的な逸品ですが、シンボリックリンクを正しく設定するには少し奇妙でした (これも特に React Native の場合)。
OK、それで私たちの選択は決まりました。 PNPM。
スクリプトオーケストレーション
にもかかわらず、 PNPM 機能にはオーケストレーションがどんどん追加されていますが、私たちがやりたかったことをすべてカバーしているわけではありません。
- 順次ビルド、
- キャッシング。
これらに関して、検討する必要がある XNUMX つの興味深い候補者が見つかりました。
私たちは両方について概念実証を行いました。
NX には、はるかに多くの機能、ジェネレーター、自動化、優れた依存関係グラフなどが含まれていました…しかし、多くのオーバーヘッドが追加され、かなり意見が分かれているため、規約に従う必要がありました。
ターボレポ 一方、機能的には非常に基本的なものです。 それでも、これは便利なプラグ アンド プレイ ソリューションであり、必要に応じてすぐに変更できます。
にもかかわらず、 ターボレポ より少ない機能しかありませんでした NX、私たちが探していた2つのことを実現しました。
- 依存関係ツリー (および同時ビルド) を考慮したビルドのオーケストレーション。
- キャッシュ (コードが変更されていない場合、ビルドはキャッシュされ、「再生」されます)。
それに加えて、ドロップイン/ドロップアウトが簡単だったので、私たちはすぐに新しい子を選ぶことになりました。 ターボリポ.
バージョン管理
いくつかの解決策も検討しましたが、最終的には次の方法を使用することにしました。 https://github.com/changesets/changesets これは TurboRepo が推奨するツールの XNUMX つであり、ドキュメントを少し読んだ結果、私たちのニーズを満たしているようでした。
開発者は、開発フローをもう少し厳密にして、次のようなサービスを提供する必要があります。 changesets
(コードがどのライブラリを変更するかを説明するファイル、重大度は次のとおりです) センバー 規約と変更の説明)。 これら changesets
その後、指定された重大度に従ってパッケージのバージョンを自動的に上げたり、 チェンジログ。 さらに、このツールでは次のことが可能になります。 pre release
モード、🍰の🍒。
次は何ですか ?
道具を決めたら、いよいよ作業開始です。 次のブログ記事では、モノラル リポジトリのコンテキストでのビルド システムとすべての開発運用/自動化/継続的インテグレーションについて説明します。
バレンティン・デ・アルメイダ
開発者エクスペリエンスとコア技術 – Ledger Live
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://www.ledger.com/blog/ledger-live-monorepo-project-part-2-the-tools-make-it-shine
- :持っている
- :は
- :not
- :どこ
- 1
- a
- 私たちについて
- 絶対の
- 追加されました
- 追加
- 後
- 再び
- すべて
- ことができます
- 既に
- 選択肢
- an
- および
- 角度の
- 発表の
- 建築
- です
- 記事
- AS
- At
- 自動化する
- 自動的に
- オートメーション
- 利用できます
- 基本
- BE
- になる
- より良いです
- ビット
- ブロック
- ブログ
- ブログの投稿
- 両言語で
- ビルド
- 構築します
- 内蔵
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- 変化する
- 変更
- 変更
- チェック
- 選択
- 選択する
- コード
- コードベース
- comes
- 従う
- コンセプト
- 同時
- コンテキスト
- 連続的な
- 便利
- 大会
- 表記
- 基本
- 可能性
- カバー
- 決定しました
- 決定する
- 依存関係
- 記述
- 説明
- デベロッパー
- Developer
- DID
- do
- ドキュメント
- そうではありません
- Drop
- 簡単に
- エコシステム
- 効率
- 効率的な
- エントリ
- 特に
- 確立
- エーテル(ETH)
- EVER
- すべてのもの
- 体験
- 速いです
- 特徴
- 特徴
- File
- フロー
- フォロー中
- 幸いにも
- 発見
- から
- 宝石
- 世代
- 発電機
- 与えられた
- Go
- グラフ
- 素晴らしい
- 持っていました
- ハンド
- ハンドル
- 持ってる
- こちら
- HTTPS
- 巨大な
- アイデア
- if
- in
- include
- 統合
- 興味深い
- に
- IT
- ITS
- JavaScriptを
- ただ
- キッド
- 元帳
- Ledger Live
- less
- 図書館
- ライブ
- 見て
- 見
- 探して
- たくさん
- 製
- make
- マネージャー
- 最大幅
- 移行
- マインド
- 逃した
- モード
- 他には?
- もっと効率的
- ずっと
- の試合に
- ネイティブ
- ナビゲート
- 必要
- 必要とされる
- ニーズ
- 新作
- 次の
- 今
- of
- 古い
- on
- かつて
- ONE
- の
- 独断
- 編成
- その他
- 私たちの
- でる
- パッケージ
- パッケージ
- 紙素材
- 部
- 場所
- 計画
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- プレイ
- プラグ
- プラグアンドプレイ
- さらに
- 可能
- 投稿
- かなり
- プロジェクト
- プロジェクト(実績作品)
- 証明
- 概念実証
- 提供します
- 置きます
- すぐに
- 反応する
- リアクトネイティブ
- リーディング
- 推奨される
- 倉庫
- 尊敬する
- 厳しい
- 見えた
- シリーズ
- いくつかの
- 重症度
- 輝く
- から
- So
- 溶液
- ソリューション
- 一部
- 特別に
- スピード
- start
- 開始
- まだ
- 店舗
- ストーリー
- それに続きます
- そのような
- サポート
- サポート
- 取る
- Talk
- チーム
- テク
- 伝える
- より
- それ
- ブロック
- アプリ環境に合わせて
- その後
- ボーマン
- 物事
- それらの
- しかし?
- 時間
- 〜へ
- あまりに
- ツール
- 豊富なツール群
- top
- ツリー
- 2
- 最終的に
- us
- 中古
- 使用されます
- v1
- バージョン
- 非常に
- 実行可能な
- バーチャル
- wanted
- ました
- 方法
- we
- WELL
- した
- いつ
- which
- 意志
- WISE
- ワーキング
- でしょう
- まだ
- 貴社
- あなたの
- ゼファーネット