Fix require monkey-patching in electron build

Summary:
In D39311893 (094c5bdfdd) we started monkey-patching `require` to resolve global dependencies in the plugins. Apparently, patching `globalThis.require` did not work in the electron env. On my local machine it kept working because I had the experimental `flipper-server` feature enabled which embeds flipper-server into the electron build. In flipper-server we properly patch `require` via `Module.prototype.require` which affected the global require in electron.
With this fix we now properly patch require in electron via Module.prototype.require all the time

Changelog: Fix plugin loading with experimental flipper-server disabled

Reviewed By: nikoant

Differential Revision: D39633821

fbshipit-source-id: 9554f643c625620d116075ae87f573d8447850f6
This commit is contained in:
Andrey Goncharov
2022-09-20 01:36:56 -07:00
committed by Facebook GitHub Bot
parent d600203627
commit 8716761cb3
6 changed files with 32 additions and 21 deletions

View File

@@ -7,7 +7,7 @@
* @format
*/
// This list should match `dispatcher/plugins.tsx` and `builtInModules` in `desktop/.eslintrc.js`
// This list should match `flipper-frontend-core/src/globalObject.tsx` and `builtInModules` in `desktop/.eslintrc.js`
export const pluginExternalModules = {
flipper: 'Flipper',
'flipper-plugin': 'FlipperPlugin',
@@ -19,6 +19,8 @@ export const pluginExternalModules = {
immer: 'Immer',
'@emotion/styled': 'emotion_styled',
'@ant-design/icons': 'antdesign_icons',
// Used by "bloks-logger" (see its bundle's content)
'react/jsx-runtime': 'ReactJsxRuntime',
};
export const wrapRequire = <T extends (path: string) => any>(require: T): T =>