Nohoist was a bit of a hack from the beginning (precisely because the hoisting was anything but guaranteed), so some incompatibility might happen for packages that cannot work without.
That said, I'm not too worried: we've tried a bunch of the most popular open-source packages, and they all seemed to work fine - the one issue was on an interaction between create-react-app and eslint, but there's discussions going on to fix that in a clean way.
Our nohoist section currently looks like this in order to get things to behave:
"nohoist": [
"**/electron/**",
"**/electron",
"**/electron*/**",
"**/electron*",
"**/canvas-prebuilt/**",
"**/canvas-prebuilt"
]
These are likely going to require auto-ejection due to being native and having postinstall scripts.Would it make sense to not bother with hoisting of ejected modules when using YPnP, given that YPnP solves the same problems as hoisting in a more global way? We'd be able to get rid of the nohoist section in that case.