Vikas Vikas - 1 month ago 25
React JSX Question

Deploying build to production using express server which i compiled using webpack -p

I want to deploy my app to production. I dont know what to do after i build my bundle using webpack -p. How to serve this bundle on production using express node server.

My webpack.config.js file -> http://pastebin.com/31A1B37S
My package.json file -> http://pastebin.com/p6reHwJF

Note: npm start is running very fine on localhost. And so i used webpack -p for creating bundle in ./dist folder. Need steps from here.

Also suggestion on better way for deploying is appreciated.

Answer

You now need to serve the contents of your dist folder with express, here's a basic implementation which you can use as an example:

Create a file named app.js in your . folder (in the same folder you dist folder is in)

app.js

var path = require('path');
var express = require('express');

var app = express();

app.use(express.static(path.join(__dirname, '/dist')));

app.get('/*', function(req, res){
  res.sendfile("index.html", {root: path.join(__dirname, '/dist')});
});

app.listen(80, function() {
  console.log("BePretty Frontend App is running at localhost: 80")
});

Then, run node app.js, if you get the EACCES error, run sudo node app.js instead. This runs your production files locally at http://localhost.

If you want to deploy this to somewhere else (for example, heroku https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction) you will have to check their instructions.