Reputation: 4551
I have seen using production react app with server in local.
But mostly I found the way is running production react app using express.js with Heroku.
How to running production react app with server in local without any change of code?
Upvotes: 31
Views: 59897
Reputation: 2869
You can follow these commands
If you are using NPM:
npm run build
npm install -g serve
npx serve -s build
And if you are using Yarn:
yarn build
yarn global add serve
npx serve -s build
Upvotes: 1
Reputation: 1239
As of date by default for CRA
serve -s build
will deploy your app on localhost port 5000
If you want to open on custom port use flag -l
serve -s build -l customportnumber
Upvotes: 7
Reputation: 1760
When you run npm run build
your console should actually say something like the following
The build folder is ready to be deployed.
You may serve it with a static server:
npm install -g serve
serve -s build
The build script is building your entire app into the build folder, ready to be statically served. However actually serving it require some kind of static file server, like the one they propose.
After running the command serve -s build you can access your production build at localhost (on the specified port).
You can of course run whatever static file server you like, I usually use express for this, however serve seems like the easiest option to just serve your statics files with a single command.
Upvotes: 58
Reputation: 4042
There are various ways of achieving this.
You can use http-server
or serve
packages for running local servers.
If on MacOS, you can also use python SimpleHttpServer to host the production build folder.
Reference: https://medium.com/@samratshaw/test-react-production-build-locally-434907be9e49
Upvotes: 1
Reputation: 1797
make a production build of the react app locally, (run npm run build
if you are using create react app
) and then you can use serve to run it locally by running serve -s build
. build
is the folder name of your production build.
Upvotes: 3
Reputation: 122
If you want to run you React application on default :8000
port it's more convenient to create an nginx proxy server which will run on port :8000
and proxy your request into your express application which is serving your bundled application running on port for example :8081
or whatever port you are using.
Upvotes: 0