反应本机更改侦听端口

时间:2015-12-23 07:54:19

标签: reactjs react-native

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

  

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

enter image description here

我尝试了几个选项:

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

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

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

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

14 个答案:

答案 0 :(得分:30)

不确定是否记录[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/troubleshooting#using-a-port-other-than-8081

答案 1 :(得分:9)

我知道现在已经晚了,但是,还有另外一种方法可以永久地更换你的端口。

转到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),
      }
     ...

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

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

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
   }
   ...
}

答案 2 :(得分:3)

设置RCT_METRO_PORT,例如:

export RCT_METRO_PORT=8765

答案 3 :(得分:2)

在花了一整天并经历了许多解决方案后,这些建议的组合帮助我解决了这个问题。 请按照以下步骤操作:

  1. 使用以下命令创建项目: 'react-native init [PROJECT_NAME]'

  2. 在Xcode中打开项目并将所有出现的“8081”替换为“8088”并保存更改

  3. 打开终端并将工作目录更改为上面创建的项目目录。 使用以下命令更改本机使用的端口: react-native start --port 8088

  4. 运行此命令后,您会在终端中看到以下输出:

    enter image description here

    如您所见,这将启动Metro实例。不要杀死命令或终端窗口。让这个过程运行。

    1. 打开一个新的终端窗口,将工作目录更改为项目目录,然后使用以下命令运行react-native项目:
    2. react-native run-ios

      项目在第二个终端上成功构建后,您将看到一个进度条,指示在第一个终端窗口中加载应用程序包,如下所示:

      enter image description here完成加载捆绑后,应用程序在模拟器上成功启动

      希望这会有所帮助。快乐的编码

答案 4 :(得分:2)

最简单的解决方案是:

react-native run-ios --port 1234

但是要求0.55以上。

答案 5 :(得分:2)

/**
 * Metro configuration for React Native
 * https://github.com/facebook/react-native
 *
 * @format
 */

module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: false,
      },
    }),
  },
  server: {
    port: 8088,
  },
}

答案 6 :(得分:2)

实际上,在当前版本的React Native中,地铁捆绑器的配置位于@react-native-community/cli中,并且要更改地铁捆绑器的默认PORT,我们只需通过export更改环境变量即可通过项目路径中的以下命令:

export RCT_METRO_PORT=8590

然后在项目的ios文件夹中找到Pods文件夹,然后在Pods文件夹中查找RCTDefines.h文件,其中有两个,两个都在里面将8081更改为8590

当然,对于测试,我们可以运行echo $RCT_METRO_PORT,如果看到新的PORT 8590,则现在对其进行了更改,并且可以使用yarn start和然后是yarn iosyarn android

提示:要连接到React Native Debugger,请按 + t 并将8081端口更改为{{1 }}。

答案 7 :(得分:1)

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

答案 8 :(得分:1)

您需要覆盖 RCT_METRO_PORT 宏变量以确保您的应用在通过 xcode 或 react-native run-ios 运行时指向正确的端口。这可以通过在工作区中打开 Pods 项目,导航到 Build Settings 并添加预处理器宏来完成。例如 RCT_METRO_PORT=7777,如果您使用的端口是 7777

enter image description here

答案 9 :(得分:0)

按照以下步骤操作:

第1步:

private void cboVender_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) {
     if ((e.Item.ItemType == ListItemType.Item)) {
         rowIndex = e.Item.ItemIndex;
          // here you have your row number, you can Access the value of that column and do whatever you want
     }         
 }

第2步: 更改默认端口 - 任何其他端口//示例 - > 8089

第3步: 返回项目 - >然后 npm start

答案 10 :(得分:0)

您可以使用此react-native-port-patcher替换默认的8081端口和您想要的端口号。

答案 11 :(得分:0)

如果使用纱线-纱线启动--port 您的端口名 对我有用。 例如。纱线启动-端口8082

答案 12 :(得分:0)

如果要更改8081以外的端口并在模拟器中运行该端口,我认为此链接具有更好的工作解决方案: https://medium.com/@hsuastegui/use-react-native-in-a-different-port-1109db5674d8

答案 13 :(得分:0)

当您执行类似命令时

./ node_modules / react-native / scripts / launchPackager.command

要启动调试服务器,请附加args之类的

-端口8082

它在React native 0.53.3中对我有效。