反应本机更改侦听端口

vik*_*ngh 22 reactjs react-native

我正在使用反应原生android和面临问题在Android设备上部署应用程序.我跑的时候

react-native start,它不会在端口8081上启动dev sever

在此输入图像描述

我尝试过几个选项:

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

2)试图在端口号8081处停止进程运行,但没有成功

我的问题是,我们可以将反应本机开发服务器端口从8081(默认情况下是android,我们可以在ios中从AppDelegate.m文件中更改)更改为其他东西或任何其他方法

您的回复将受到高度赞赏.谢谢

pat*_*ick 36

不确定这是否已记录[1],您可以通过CLI参数指定端口,如下所示:

react-native start --port 9988
Run Code Online (Sandbox Code Playgroud)

我在源代码中找到它,它在我的本地机器上运行:)

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


[1]这是现在这里记载:https://facebook.github.io/react-native/docs/troubleshooting#using-a-port-other-than-8081


Rah*_*mar 12

使用指定端口运行 Metro-bundler 服务器,例如。“8089”

react-native start --port 8089
Run Code Online (Sandbox Code Playgroud)

构建监听上述端口的 iOS 和 Android 包

iOS:.react-native run-ios --port 8089 --simulator \"iPhone 8\"

安卓: react-native run-android --port 8089

在模拟器或设备上启动应用程序后,更改开发设置中的服务器和端口号。

  • iOS: Command + D in Mac and Ctrl + D in windows
    • 单击配置捆绑器选项
    • 提供主机localhost和端口8089然后应用更改
  • 安卓: Command + M in Mac and Ctrl + M in windows
    • 单击更改捆绑包位置
    • 将其更改为localhost:8089然后按确定


Nee*_*ala 11

我知道现在已经很晚了,但是,还有另外一种方法可以永久地改变你的港口.

转到your_app \node_modules\react-native\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),
      }
     ...
Run Code Online (Sandbox Code Playgroud)

在RN 0.57上测试更新:
1.如果您使用自定义城域配置

const config = {
  ...
  server: {
    port: 8088,
  }
  ...
};
Run Code Online (Sandbox Code Playgroud)

2.如果不是,请
转到your_app \node_modules\react-native\local-cli\util\Config.js

const Config = {
   ...
   server: {
      port: process.env.RCT_METRO_PORT || 8088 //changed from 8081
   }
   ...
}
Run Code Online (Sandbox Code Playgroud)

  • 更改`node_modules`中的文件几乎不能称为永久文件.每当您更新依赖关系时,您都会打破这种变化. (3认同)

Bag*_*yer 11

最简单的解决方案是:

以下命令将构建 Android 或 iOS 包,该包将监听端口1234

对于 iOSreact-native run-ios --port=1234

对于安卓 react-native run-android --port=1234

如果您使用的是Metro-server,那么您可以在服务器对象下添加端口,例如:

server:{ port:1234 }

或者

跑步

react-native start --port=1234

在此处查找 Metro-server 的更多配置:https ://facebook.github.io/metro/docs/en/configuration

但要求0.55以上。


Ale*_*Fox 5

您需要覆盖RCT_METRO_PORT宏变量,以确保您的应用程序在通过 xcode 或react-native run-ios. 这可以通过在工作区中打开 Pods 项目、导航到“构建设置”并添加预处理器宏来完成。例如RCT_METRO_PORT=7777,如果您使用的端口是7777.

在此输入图像描述