PnP
Plug'n'Play
Berryに含まれる機能の名前
yarn v2を使うと必須で使うことになるわけではない
docs
#WIP
パッケージをnode_modules以下に展開せずに仮想化してロードできるようにする
node_modulesの展開作業が不要になる
依存関係の管理がより厳密になり間違いにくくなる
#??
library側が対応必要?
node_modulesの場合、package.jsonの依存関係記述に漏れがあっても偶然requireできてしまう場合があります (hoistingの悪影響)。PnPではこの問題が起きないため、今まで偶然動いていたパッケージがかえって動かなくなってしまうことがあります。ref
なぜversionの不整合が置きづらい?
仮想化してロード」だけ見ると何が変わるのかよくわからない
tool側の対応が必要
yarn PnPはNode.jsの require を独自実装に差し替えることで実現しているので、Node.jsの実装によらずに依存解決をするツールでは別途対応が必要になります。ref
https://qiita.com/mizchi/items/db776f6f8e0a76e38575
https://zenn.dev/ryo511/articles/4eef0fc13fedcc
https://www.wantedly.com/companies/wantedly/post_articles/325643
Tink
npm版
https://github.com/npm/tink