Реальный порт прослушивания изменений

Я использую реакцию родного андроида и сталкиваясь с проблемой для развертывания приложения на устройстве Android. Когда я бегу

инициировать перезагрузку, он не будет запускаться на порт 8081

enter image description here

Я попробовал несколько вариантов, упомянутых в:

1) https://facebook.github.io/react-native/docs/troubleshooting.html

2) Пытался остановить процесс, запущенный на порт номер 8081, но без успеха

Мой вопрос заключается в том, что мы можем изменить отредактированный собственный сервер-сервер dev с 8081 (который по умолчанию используется в android, как бы то ни было, мы можем изменить в ios из файла AppDelegate.m) к чему-то другому или к любому другому подходу

Ваши отзывы будут высоко оценены. благодаря

Ответ 1

Не уверен, документировано это или нет [1], вы можете указать порт через аргумент CLI, например:

react-native start --port 9988

Я нашел его в исходном коде, и он работал на моей локальной машине :)

https://github.com/facebook/react-native/blob/master/local-cli/server/server.js#L30


[1] Это теперь задокументировано здесь: https://facebook.github.io/react-native/docs/trou устранение ошибок#using-a-port-other-than-8081

Ответ 2

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

Перейдите в your_app\node_modules\реагировать-нативный\local-cli\server\server.js и измените порт 8081 на 8088

что будет примерно так

    ...
      module.exports = {
      name: 'start',
      func: server,
      description: 'starts the webserver',
      options: [{
        command: '--port [number]',
        default: 8088,
        parse: (val) => Number(val),
      }
     ...

ОБНОВЛЕНИЕ ПРОВЕРЕНО НА RN 0,57:
1. Если вы используете пользовательские настройки метро

const config = {
  ...
  server: {
    port: 8088,
  }
  ...
};

2. А если нет,
Перейдите в your_app\node_modules\Reaction-native\local-cli\util\Config.js

const Config = {
   ...
   server: {
      port: process.env.RCT_METRO_PORT || 8088 //changed from 8081
   }
   ...
}

Ответ 3

Установите RCT_METRO_PORT, например:

export RCT_METRO_PORT=8765

Ответ 4

Проведя целый день и пройдя множество решений, комбинация предложений помогла мне решить эту проблему. Выполните следующие действия:

  1. Создайте проект, используя команду: "init-init init [PROJECT_NAME]",

  2. Откройте проект в Xcode и замените все вхождения "8081" на "8088" и сохраните изменения

  3. Откройте терминал и измените рабочий каталог на указанный выше каталог проекта. Используйте следующую команду, чтобы изменить порт, который реагирует на собственные приложения: init-native start --port 8088

После запуска этой команды вы увидите следующий вывод в терминале:

enter image description here

Как вы можете видеть, это запускает экземпляр Metro. Не убивайте команду или окно терминала. Пусть этот процесс выполняется.

  1. Откройте новое окно терминала, измените рабочий каталог на каталог проекта и запустите проект, отвечающий за реакцию, используя команду:

реагировать-native run-ios

После успешного создания проекта на втором терминале вы увидите индикатор выполнения, указывающий загрузку пакета приложений в первом окне терминала, как показано ниже:

enter image description here После завершения загрузки пакета приложение успешно запускается на симуляторе

Надеюсь это поможет. Счастливое кодирование

Ответ 5

Самое простое решение:

Приведенная ниже команда создаст пакет Android или iOS, который будет прослушивать порт 1234

Для iOS: react-native run-ios --port=1234

Для Android react-native run-android --port=1234

Если вы используете metro-сервер, то вы можете добавить порт в объекте сервера, например:

server:{ port:1234 }

или же

бежать

react-native start --port=1234

Узнайте больше конфигурации для metro-сервера здесь: https://facebook.github.io/metro/docs/en/configuration

Но требует 0,55 и выше.

Ответ 7

Следуйте шагам:

Шаг 1:

vim node_modules/react-native/local-cli/server/server.js

Шаг 2: измените порт по умолчанию - любой другой порт//пример → 8089

Шаг 3: вернитесь к проекту → и запустите npm

Ответ 8

Вы можете использовать этот action-native-port-patcher, который заменяет порт 8081 по умолчанию на нужный номер порта.

Ответ 9

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

Во-первых, подтвердите, если это так:

$> netstat -aon|findstr "8081"

Теперь измените его для запуска с нового порта по умолчанию

a) Измените переменную env в Windows, чтобы установить новый порт для RN:

$> SET RCT_METRO_PORT=8083

Это используется в RN для использования в качестве порта по умолчанию, и если он не установлен, по умолчанию используется значение 8081

б) Удалить старый реверс:

$> adb reverse –remove-all

c) Установите новый обратный порт для устройства adb:

$> adb reverse tcp:8083 tcp:8083

d) Измените настройки устройства на устройстве с 8081 по умолчанию на 8083.

Запустите приложение и затем введите input keyevent 82, теперь выберите " Настройки Dev"> "Сервер отладки…"> введите новый URL: localhost: 8083.

построить и запустить снова

Ответ 10

Обновите ваш порт своего реактивного проекта с помощью приведенных ниже команд. просто сохраните приведенный ниже код в файле, который можно назвать как update-port и запустите этот файл с помощью /file/path/update-port на уровне своего реактивного проекта (где вы запускаете npm start или yarn start тогда не нужно ничего менять, просто запустите yarn start и ваш код автоматически запускается на 8082.

Заметка:-

  1. Вы можете напрямую запустить команду ниже на уровне проекта.
  2. Вы также можете обновить номер порта, заменив 8082 своим номером порта.
  3. Для Android вам нужно установить порт в dav setting/Debug Server host & port for device затем установить порт как 127.1.0.0:8082 (сначала ваш ip, а затем используйте ваш порт).
  4. Когда вы обновляете ваш нод-модуль, порт по умолчанию будет автоматически меняться, тогда, пожалуйста, перезапустите файл update-port.
#!/bin/bash


sed -i '' 's/8081/8082/g' ./node_modules/react-native/local-cli/server/server.js
sed -i '' 's/8081/8082/g' ./node_modules/react-native/React/Base/RCTBridgeDelegate.h
sed -i '' 's/8081/8082/g' ./node_modules/react-native/React/Base/RCTDefines.h
sed -i '' 's/8081/8082/g' ./node_modules/react-native/React/DevSupport/RCTInspectorDevServerHelper.mm
sed -i '' 's/8081/8082/g' ./node_modules/react-native/React/React.xcodeproj/project.pbxproj
sed -i '' 's/8081/8082/g' ./node_modules/react-native/local-cli/runIOS/runIOS.js
sed -i '' 's/8081/8082/g' ./node_modules/react-native/local-cli/util/isPackagerRunning.js
sed -i '' 's/8081/8082/g' ./node_modules/react-native/local-cli/runAndroid/runAndroid.js
sed -i '' 's/8081/8082/g' ./node_modules/react-native/Libraries/RCTTest/RCTTestRunner.m