React native change listening port

I know it is late but FYI, there is also another way where you can change your port permanently.

Go to your_app\node_modules\react-native\local-cli\server\server.js and change the port 8081 to 8088

which will be something like this

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

UPDATE TESTED ON RN 0.57:
1. If you are using custom metro config

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

2. And if you are not then,
Go to your_app\node_modules\react-native\local-cli\util\Config.js

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

Not sure if this is documented or not[1], you can specify the port via a CLI argument, like this:

react-native start --port 9988

I found it in the source code, and it worked on my local machine :)

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


[1] This is now documented here: https://facebook.github.io/react-native/docs/troubleshooting#using-a-port-other-than-8081


The simplest solution is:

The below command will build Android or iOS package which will listen to port 1234

For iOS: react-native run-ios --port=1234

For Android react-native run-android --port=1234

If you are using metro-server then you can add port under server object like :

server:{ port:1234 }

or

run

react-native start --port=1234

Find out more configuration for metro-server here: https://facebook.github.io/metro/docs/en/configuration

But requires 0.55 and above.