Вот мой предыдущий вопрос по этому поводу:
Невозможно разрешить модуль в React Native - однако я хочу сделать модуль необязательным
И вот ресурс, который я был указан:
Как требовать модуль, только если он существует. React native
Это мой текущий код:
let GoogleSignin;
const GoogleSigninInit = '@react-native-community/google-signin';
try {
GoogleSignin = require.call(null, GoogleSigninTest);
} catch (e) {
console.log("Google Signin is not found");
}
let FBSDK;
const FBSDKInit = 'react-native-fbsdk';
try {
FBSDK = require.call(null, FBSDKInit);
} catch (e) {
console.log("Facebook SDK is not found");
}
let InAppBrowser;
const InAppBrowserInit = 'react-native-inappbrowser-reborn';
try {
InAppBrowser = require.call(null, InAppBrowserInit);
} catch (e) {
console.log(e);
console.log("InApp Browser is not found");
}
let AppleAuth;
const AppleAuthInit = '@invertase/react-native-apple-authentication';
try {
AppleAuth = require.call(null, AppleAuthInit);
} catch (e) {
console.log("Apple auth is not found");
}
Однако, когда я пытаюсь использовать react-native-inappbrowser-reborn
, который находится абсолютно в моей папке node_modules, я получаю следующую ошибку :
Unknown named module: "react-native-inappbrowser-reborn"
Итак, код, который у меня есть, определенно избавился от ошибки дополнительных модулей, однако, похоже, что он фактически не загружает их.
Есть ли способ действительно загрузить модули, которые у меня есть в node_modules?
EDIT:
Вот полная трассировка стека для этого конкретного модуля, но опять же, это происходит и с другими модулями.
Unknown named module: "react-native-inappbrowser-reborn"
- node_modules/metro/src/lib/polyfills/require.js:95:12 in metroRequire
- node_modules/react-native-keycloak-social-login/src/Login.js:25:25 in <global>
- node_modules/metro/src/lib/polyfills/require.js:321:4 in loadModuleImplementation
- node_modules/metro/src/lib/polyfills/require.js:201:20 in guardedLoadModule
- node_modules/metro/src/lib/polyfills/require.js:128:6 in metroRequire
- node_modules/metro/src/lib/polyfills/require.js:657:4 in runUpdatedModule
- node_modules/metro/src/lib/polyfills/require.js:532:23 in metroHotUpdateModule
- node_modules/metro/src/lib/polyfills/require.js:53:15 in define
* http://127.0.0.1:19001/node_modules/react-native-keycloak-social-login/src/Login.bundle?platform=ios&dev=true&minify=false&modulesOnly=true&runModule=false&shallow=true:1:1 in eval
- node_modules/metro/src/lib/bundle-modules/injectUpdate.js:65:4 in inject