nohoist
@kei_ffff: > Monorepo 構成で複数の React を共存させることができないため web と mobileのパッケージをnoHoistに設定して、webとmobileでそれぞれreactのバージョンを管理するのではダメだったのだろうか?
gpt-4.icon
"noHoist"というのは、一般的に JavaScript のパッケージマネージャー、特に Yarn Workspaces または Lerna などを使用しているときに出てくる概念で、特定のパッケージが親の依存関係から「持ち上げ」られないように指定するものです。
「持ち上げる(hoisting)」というのは、特定のパッケージが多数のプロジェクトまたはパッケージで使用されている場合、それらを一度だけインストールし、リポジトリの最上位に置くという挙動を指します。これにより、ディスクスペースの使用を削減し、パッケージのインストール速度を向上させることができます。
しかし、この挙動がすべてのパッケージにとって最適とは限りません。あるパッケージが特定のバージョンの依存関係を必要とする場合、またはそのパッケージが他のプロジェクトやパッケージで共有されるべきでない場合、それを「持ち上げ」してしまうと問題が発生する可能性があります。このようなケースでは、そのパッケージを "noHoist" リストに追加することで、パッケージを持ち上げる動作から除外し、それが必要とする独自の依存関係を保持できます。