PnP
Plug'n'Play
yarn v2を使うと必須で使うことになるわけではない
パッケージをnode_modules以下に展開せずに仮想化してロードできるようにする
node_modulesの展開作業が不要になる
依存関係の管理がより厳密になり間違いにくくなる
library側が対応必要?
node_modulesの場合、package.jsonの依存関係記述に漏れがあっても偶然requireできてしまう場合があります (hoistingの悪影響)。PnPではこの問題が起きないため、今まで偶然動いていたパッケージがかえって動かなくなってしまうことがあります。ref なぜversionの不整合が置きづらい?
仮想化してロード」だけ見ると何が変わるのかよくわからない
tool側の対応が必要
yarn PnPはNode.jsの require を独自実装に差し替えることで実現しているので、Node.jsの実装によらずに依存解決をするツールでは別途対応が必要になります。ref