Реакция не может найти файл входа в любом из корней
Я использую React Native как Pod в моем проекте iOS.
Когда я пытаюсь загрузить представление, которое я создал с помощью React Native, я получаю экран Error, ссылающийся на окно терминала, где выполняется npm.
В терминале ошибка, которую я вижу, это:
Ошибка: не удается найти файл ввода в любом из корней:
Я пробовал несколько вещей, перемещая файл в другое место, но не повезло.
Я запускал "npm start", и я ищу файл в "http://localhost:8081/".
Текущее местоположение файла находится в том же месте, где я запускал "npm start" из.
Я полностью застрял здесь.
Я настроил что-то неправильно. Как я могу устранить проблему здесь?
Ответы
Ответ 1
Извините за ответ на мой собственный вопрос (немного хромой), но я надеюсь, что это поможет кому-то еще.
Вначале нам нужно запустить команду npm, указав альтернативный путь.
npm run start -- --root <directory_with_your_react_component_js_sources>
Вкл http://facebook.github.io/react-native/docs/embedded-app.html#content - это руководство по интеграции React Native в существующее приложение.
Ответ 2
Проверьте сервер node, работающий на одном из терминалов bash, это, вероятно, было вызвано предыдущим проектом ReactNative XCode, который вы запускали ранее. Остановите этот процесс и снова запустите проект XCode, это должно устранить проблему.
Ответ 3
Это происходит, когда React хочет использовать порт, который уже используется другим приложением. Поскольку React прослушивает порт 8081, вы можете запустить процесс, выполняющийся на этом порту, в командной строке:
lsof -n -i4TCP:8081
Вы получите ответ следующим образом:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 28571 username 32u IPv6 0x742e2ab233abdb9f 0t0 TCP *:sunproxyadmin (LISTEN)
Просто убил, набрав оболочку
kill -9 <PID>
. Используйте тот же PID, который был указан в последнем ответе.
Затем запустите npm start
.
Ответ 4
Вот эта проблема:
https://github.com/facebook/react-native/issues/541
Это похоже на то же самое. Пользователь, похоже, указал, что раньше они запускали проект из этого каталога, что заставляет меня задаться вопросом, связано ли это с висящим или оставшимся пакетом от предыдущего запуска? Попробуйте закрыть окно терминала и перезапустить проект Xcode.
В общем, это звучит как проблема с упаковщиком, который не генерирует файлы, как ожидалось. Есть ли другие сообщения в окне терминала?
Ответ 5
Я хотел обновить это после того, как немного разочаровался, моя установка по-прежнему не работала после уничтожения всех процессов node и выполнения указанной выше команды.
Кажется, в настоящий момент существует открытая проблема ReactNative: https://github.com/facebook/react-native/issues/14246
Решение для этого состоит в том, чтобы убить внешний менеджер пакетов и запустить "npm start" в папке проекта.
Ответ 6
Проверьте, есть ли у вас index.ios
или index
в AppDelegate.m:
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
У меня был index
, и я ранее использовал index.ios
и index.android
, поэтому он не работал.