I've created a React app using create-react-app but whenever I start the dev server (using npm start), it opens up my browser. I want to make it so that it doesn't open my browser whenever I start my dev server.
How can I accomplish this?
Create .env file in the root directory where your package.json file resides. And add the following:
BROWSER=none
Now run npm start.
package.json, you can add "start": ". ./.env; react-scripts start"packaga.json file and right after "scripts": { replace "start": "react-scripts start", with "start": "env BROWSER=none react-scripts start",'env' is not recognized as an internal or external command, operable program or batch file.). The .env file based approach works for me on Windows.Add BROWSER=none to your npm start script in your package.json file, like this:
"scripts": {
"start": "BROWSER=none react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
Check out the CRA documentation for more configuration and environment variable options:
https://create-react-app.dev/docs/advanced-configuration/
Update/Troubleshooting:
In case you're having a 'BROWSER' is not recognized as an internal or external command, operable program or batch file error: do an npm install of cross-env:
npm install --save cross-env
Then, add cross-env BROWSER=none to your start script
"start": "cross-env BROWSER=none react-scripts start",
cross-env globally, just add cross-env to your devDependencies and use "start": "npx cross-env Browser=..."For Windows you can edit/create a script in package.json like this one. There must be no blank before the &&:
"start": "set BROWSER=none&& react-scripts start"
For Linux based OS, just delete the "set" and the "&&" and it will work:
"start": "BROWSER=none react-scripts start"
cross-env to have the same way of defining these scripts