Fix os and tty modules being emptied with Expo API Routes#876
Fix os and tty modules being emptied with Expo API Routes#876Nezz wants to merge 1 commit intostorybookjs:nextfrom
Conversation
|
| return { | ||
| type: 'empty', | ||
| }; | ||
| } |
There was a problem hiding this comment.
The intention behind doing this when storybook is disabled wasn't clear to me, but this could be re-added if needed with the web check
There was a problem hiding this comment.
Its because I had some reports of these packages getting pulled in somehow even when storybook was disabled
There was a problem hiding this comment.
Oh wow, not sure how that could happen 😅
There was a problem hiding this comment.
Yeah i don't know, just metro things 😅
|
Makes sense, thanks for the pr 🙏 |
Issue:
withStorybookreplaces os and tty with empty modules on all platforms, breaking Expo API RoutesWhat I did
withStorybookunconditionally resolved os and tty to{ type: "empty" }as a workaround. This breaks Expo API Routes (which bundle for the web platform) when any server-side dependency needs real Node built-ins likeos.hostname().Changes:
platform !== 'web'), so web/server bundles get the real Node modules.storybook/@storybookimports are already emptied, so the instrumentor is never loaded and its os/tty imports are never reached.How to test
@storybook/react-nativerequire("os")(e.g.os.hostname())os.hostname is not a functionerrorsIf your answer is yes to any of these, please make sure to include it in your PR.