В какой момент нативные модули компилируются в приложении React Native (с Expo)? - PullRequest
0 голосов
/ 18 июня 2020

Компилируются ли базовые собственные модули при их установке из NPM, или они компилируются при запуске приложения (т. Е. В комплекте)?

Я не думаю, что они скомпилированы, когда они устанавливаются из NPM, так как для этого на момент установки у вас должны быть соответствующие компиляторы на вашем компьютере (чего я не делал). Вдобавок ко всему, я не могу найти файлы, которые выглядят как результат компиляции.

Однако я не уверен, что изменения в собственном коде не кажутся для отражения в окончательном приложении React Native.

Я пытаюсь реализовать функцию, которая отсутствует в пакете NPM, поэтому, чтобы ознакомиться с пакетом, я возился с Собственный код.

Однако я могу изменить все, что захочу, но изменения, похоже, ничего не делают в конечном приложении.

Я зашел так далеко, что полностью удалил все Собственный код (папки android и ios) из данного пакета, а затем очистил мой кеш (как на сборщике Expo, так и на клиенте Expo), но все равно ничего не произошло; каким-то образом приложение все еще игнорировало очевидную ошибку (например, отсутствующие файлы).

Связано ли это с тем, что я использую Expo? Изменения игнорируются, потому что код где-то читается из кеша? Я просто что-то принципиально не понимаю?

Любая помощь будет очень принята.

Ps Моя конечная цель - иметь возможность изменить вышеупомянутый пакет NPM, поэтому, если это невозможно изменить нативный модуль напрямую, может ли кто-нибудь рассказать мне, как это правильно сделать? Спасибо.

1 Ответ

0 голосов
/ 23 июня 2020

Тем из вас, кто может оказаться в подобной ситуации, кажется, что вы не можете изменить собственный код с помощью Expo, если вы не извлечете свое приложение или не используете vanilla React Native.

Из того, что я понял, Причина этого в том, что каждый собственный модуль, совместимый с Expo, поставляется в комплекте с Expo (сюда входят модули, созданные командой Expo, а также модули, созданные другими людьми, но команда Expo включила) .

Это означает, что если вы не сможете заставить разработчика Expo-совместимого Native модуля выпустить новую версию своего пакета с внесенными в него изменениями, Expo не заберет ваш пользовательские изменения.

Даже в этом случае я не могу гарантировать, что он будет работать, так как я не знаю, ограничен ли каждый выпуск Expo версиями собственных модулей, которые он содержал в момент его release.

Если вам нужна дополнительная информация, вероятно, лучше всего попытаться связаться с одним из разработчиков Expo в социальных сетях. edia или на форумах Expo.

Вот дополнительные ссылки. В конечном итоге они могут go умереть, но я все равно включу их:

...