Неизвестный именованный модуль в React Native при попытке сделать модуль необязательным - PullRequest
0 голосов
/ 09 июля 2020

Вот мой предыдущий вопрос по этому поводу:

Невозможно разрешить модуль в 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

1 Ответ

0 голосов
/ 09 июля 2020

Согласно README , установка не является полностью автоматической c, и вам необходимо выполнить дальнейший процесс в зависимости от платформы и версии, поддерживающей реакцию.

Если вы следовали выше, затем попробуйте удалить свои node_modules, запустите npm cache clean, переустановите node_modules и снова запустите приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...