How to specify a port to run a create-react-app based project?
When you use Create React App to scaffold a React project, the local development server typically runs on port 3000 by default. If you need to run it on a different port—perhaps because 3000 is already in use—you can do so using environment variables.
1. Using the Environment Variable Directly
You can set the PORT environment variable when running the start script. For example, if you want to run your app on port 3001:
On macOS/Linux:
PORT=3001 npm start
Or if you’re using yarn:
PORT=3001 yarn start
On Windows (cmd.exe):
set PORT=3001 && npm start
(In PowerShell, you’d use $env:PORT=3001; npm start.)
2. Using a .env File
Create React App also respects a local .env file at the root of your project. If you want to avoid setting environment variables in your terminal each time, place a line in a .env file:
PORT=3001
Then run:
npm start
or
yarn start
Create React App will automatically pick up PORT=3001 from the .env file and start the server on port 3001.
3. Best Practices and Tips
-
Keep Environment Variables Out of Version Control
Typically,.envfiles contain settings specific to each environment (development, test, production). Consider adding.envto your.gitignoreif it contains sensitive information—though port numbers alone aren’t sensitive, other secrets might be. -
Avoid Conflicting Ports
Always ensure the chosen port is not already used by another service. If needed, you can choose from the ephemeral port range (49152–65535) to minimize conflicts. -
Check Your
.env.*Files
Create React App also supports multiple environments with.env.development,.env.production, etc. Make sure you’re setting the port in the correct file for your use case.
With these steps, you can easily change the port for a Create React App project to better suit your local environment or avoid conflicts with other processes. Happy coding!