How to use the command 'react-native start' (with examples)
- Linux , Macos , Windows , Android , React native
- November 5, 2023
The ‘react-native start’ command is used to start the React Native server and can be used to communicate with the connected devices. It is a command-line tool that is used to manage the React Native application development environment. The server started by this command allows the application to communicate with the development machine and is required for building and running the React Native apps.
Use case 1: Start the server that communicates with connected devices
Code:
react-native start
Motivation: This example is used when you want to start the React Native server and establish communication with the connected devices. It is necessary to use this command before running the application on connected devices or simulators/emulators.
Explanation: The command ‘react-native start’ is used without any additional options or arguments to start the server. It starts the server on the default port (8081) and allows the connected devices to connect to the server for running the React Native app.
Example OUTPUT:
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own Metro Bundler instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/metro │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Use case 2: Start the metro bundler with a clean cache
Code:
react-native start --reset-cache
Motivation: This example is used when you want to start the metro bundler with a clean cache. Clearing the cache can help resolve issues related to stale or conflicting values in the cache.
Explanation: The ‘–reset-cache’ option is used with the ‘react-native start’ command to start the metro bundler with a clean cache. This option clears the react-native packager cache and ensures that it starts with a fresh cache.
Example OUTPUT:
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own Metro Bundler instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/metro │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Use case 3: Start the server in a custom port (defaults to 8081)
Code:
react-native start --port 3000
Motivation: This example is used when you want to start the React Native server on a custom port. You might want to use a specific port number to avoid conflicts with other services running on the default port (8081).
Explanation: The ‘–port’ option is used with the ‘react-native start’ command to specify a custom port number for the server. In this example, the server is started on port 3000 instead of the default port (8081).
Example OUTPUT:
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 3000. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own Metro Bundler instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/metro │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Use case 4: Start the server in verbose mode
Code:
react-native start --verbose
Motivation: This example is used when you want to start the React Native server in verbose mode. Verbose mode provides detailed information about the processes and actions performed by the server, which can be helpful during development and troubleshooting.
Explanation: The ‘–verbose’ option is used with the ‘react-native start’ command to start the server in verbose mode. This mode provides additional information and logs to aid in debugging and understanding the behavior of the server.
Example OUTPUT:
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 8081 (verbose). │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own Metro Bundler instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/metro │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Use case 5: Specify the maximum number of workers for transforming files
Code:
react-native start --max-workers 4
Motivation: This example is used when you want to specify the maximum number of workers for transforming files. By increasing the number of workers, you can speed up the transformation process and improve the build performance of the React Native app.
Explanation: The ‘–max-workers’ option is used with the ‘react-native start’ command to specify the maximum number of workers for transforming files. In this example, the maximum number of workers is set to 4, which allows the server to use 4 parallel processes for transforming files.
Example OUTPUT:
┌────────────────────────────────────────────────────────────────────────────┐
│ │
│ Running Metro Bundler on port 8081 with 4 workers. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own Metro Bundler instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/metro │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Use case 6: Disable interactive mode
Code:
react-native start --no-interactive
Motivation: This example is used when you want to disable interactive mode while starting the React Native server. Disabling interactive mode prevents the Metro Bundler from opening a new browser tab or window automatically.
Explanation: The ‘–no-interactive’ option is used with the ‘react-native start’ command to disable the interactive mode. In this example, the interactive mode is disabled, and the Metro Bundler will not open a new browser tab or window.
Example OUTPUT:
└────────────────────────────────────────────────────────────────────────────┘
Conclusion:
The ‘react-native start’ command is a versatile command-line tool that is used to start the React Native server and manage the development environment. It offers various options to customize the behavior of the server, such as specifying a custom port, starting in verbose mode, resetting the cache, and more. Understanding and utilizing these options can enhance the development and debugging experience while working with React Native apps.