MetroBundler связывает приложение для вас, чтобы вы могли запустить / отладить его. Возможно, что вокруг есть какие-то старые файлы кэша или устаревшие файлы.
В большинстве случаев нелегко сказать, в чем конкретно проблема с метро, но, на мой взгляд, очень часто помогают следующие шаги:
(Обратите внимание, это для Linux пользователей ... если вы используйте Windows, замените одиночные команды внутри вашей os-командой)
Добавьте эти строки в ваш пакет. json - scripts-Section, чтобы иметь возможность запускать его всякий раз, когда вы например:
"kill_MetroBundler": "lsof -i :8081 | grep node | awk '{print $2}'| head -1 | xargs kill",
"clean-start": "rm -rf ./node_modules && yarn install && watchman watch-del-all && rm -rf $TMPDIR/haste-map-react-native-packager-* && rm -rf $TMPDIR/metro-bundler-cache-* && rm -rf $TMPDIR/react-*",
Поэтому я рекомендую сначала найти и уничтожить все процессы metroBundler. Моя команда поиска с lsof
для Служб, работающих на порту 8081, и после передачи по трубопроводу некоторым процессам (чтобы получить необходимое имя программы) выполнила для нее kill
, чтобы принудительно закрыть процесс.
После этого вы также должны запустить clean-start
, который удалит вашу директорию node_module
, переустановит модули, убьет всех сторожей и процессов chaple bundler & packager.
Иногда, в действительно сложных случаях, это также не Работа. Здесь я выяснил, что, возможно, потребуется заново создать файл-пакет для Android:
"RN_Bundle": "react-native bundle --platform android --dev false --reset-cache --entry-file index.js --bundle-output android/build/generated/assets/react/release/index.android.bundle --assets-dest android/build/generated/res/react/release",
Если вы используете эту команду, я рекомендую следующий порядок:
- kill_MetroBundler
- clean-start
- RN_Bundle
Возможно, вам придется немного отрегулировать команды для своих нужд, но для меня по крайней мере, эти делали для меня большую часть времени.
Удачи