Почему «react-native link some-native-module» является лотереей?

#react-native

#react-native

Вопрос:

В основном я люблю React Native. Я использую его с 0.22. В настоящее время на 0.35.

Но почему связывание собственных библиотек действует как лотерея? Я редко заставляю его работать с первого раза, и то, что ломается, часто является совершенно разными вещами.

Каждое обновление RN — это лаваш. Вот что я обычно делаю:

  1. npm i react-native@0.35
  2. react-native upgrade (отвечайте «да» на каждый вопрос для замены файлов)
  3. вставьте мои данные в info.plist (они были заменены ..)
  4. переустановите модули
  5. повторно свяжите все собственные модули
  6. задерживаю дыхание и пытаюсь react-native run-ios

В большинстве случаев вышеуказанное не работает. Но это работает, когда я компилирую приложение из XCode.

Путь отсюда до рабочего run-ios часто бывает долгим и разочаровывающим. Это включает в себя следующее:

  1. разблокируйте все собственные модули с react-native unlink xyz
  2. вручную удалите пути поиска заголовка, которые не удаляла отсылка
  3. rm -rf node_modules
  4. yarn
  5. продукт / очистка из XCode
  6. установите модули
  7. связать собственные модули

Иногда вышеупомянутое работает. В основном это не работает. Обычно некоторые собственные модули попадают в раздел ошибок сборки при запуске из react-native run-ios . Запуск из XCode работает как обычно.

Собственные модули, попадающие в раздел ошибок, не всегда одинаковы. У меня также были некоторые собственные модули, «отправленные» с ошибкой RN. (RCTGeolocation, RCTActionSheet, RCTWebSocket)

Следующий «уровень» решения (когда я не могу заставить вышеупомянутое работать) — это:

  1. react-native init nextAppAttempt
  2. скопируйте код, активы, .babelrc и т.д. В новую папку
  3. yarn
  4. свяжите все модули
  5. установите модули

Я добился некоторого успеха с вышеупомянутым, но у меня есть идея переименовать приложение на настоящее имя и повторно подключиться к моему репозиторию GitHub.

Вот собственные модули, которые я связываю:

 react-native link react-native-fs amp;amp; 
react-native link react-native-camera amp;amp; 
react-native link react-native-code-push 
react-native link react-native-permissions amp;amp; 
react-native link react-native-image-resizer amp;amp; 
react-native link react-native-mixpanel amp;amp; 
react-native link react-native-maps amp;amp; 
react-native link react-native-svg amp;amp;
  
  • В чем здесь дело?

  • Работает ли это для других?

  • Есть ли недостатки в моем процессе? (Я надеюсь на это)

Комментарии:

1. Не совсем связано, но я утверждаю, что мне всегда нужно запускать react-native run-ios несколько раз, прежде чем ошибка «Нет URL-адреса пакета» исчезнет.

2. Черт возьми, может кто-нибудь показать мне здесь какие-нибудь огни. действительно неприятные проблемы

Ответ №1:

У меня не было ни одной из вышеперечисленных проблем в течение нескольких месяцев. Я полагаю, это связано с одним из недавних обновлений RN. Сегодня я обновился с 0.45 до 0.47 без каких-либо проблем.

Может быть, что-то исправлено в RN, и эти проблемы исчезли? Я очень надеюсь на это.