Реальный порт прослушивания изменений
Я использую реакцию родного андроида и сталкиваясь с проблемой для развертывания приложения на устройстве 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
Проведя целый день и пройдя множество решений, комбинация предложений помогла мне решить эту проблему. Выполните следующие действия:
-
Создайте проект, используя команду: "init-init init [PROJECT_NAME]",
-
Откройте проект в Xcode и замените все вхождения "8081" на "8088" и сохраните изменения
-
Откройте терминал и измените рабочий каталог на указанный выше каталог проекта. Используйте следующую команду, чтобы изменить порт, который реагирует на собственные приложения: init-native start --port 8088
После запуска этой команды вы увидите следующий вывод в терминале:
![enter image description here]()
Как вы можете видеть, это запускает экземпляр Metro. Не убивайте команду или окно терминала. Пусть этот процесс выполняется.
- Откройте новое окно терминала, измените рабочий каталог на каталог проекта и запустите проект, отвечающий за реакцию, используя команду:
реагировать-native run-ios
После успешного создания проекта на втором терминале вы увидите индикатор выполнения, указывающий загрузку пакета приложений в первом окне терминала, как показано ниже:
После завершения загрузки пакета приложение успешно запускается на симуляторе
Надеюсь это поможет. Счастливое кодирование
Ответ 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 и выше.
Ответ 6
export RCT_METRO_PORT=8082
react-native start --port $RCT_METRO_PORT
react-native run-ios
https://facebook.github.io/react-native/docs/troubleshooting#using-a-port-other-than-8081
Ответ 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
.
Заметка:-
- Вы можете напрямую запустить команду ниже на уровне проекта.
- Вы также можете обновить номер порта, заменив
8082
своим номером порта. - Для Android вам нужно установить порт в
dav setting/Debug Server host & port for device
затем установить порт как 127.1.0.0:8082
(сначала ваш ip, а затем используйте ваш порт). - Когда вы обновляете ваш нод-модуль, порт по умолчанию будет автоматически меняться, тогда, пожалуйста, перезапустите файл
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