an example for deploying a React Router + NodeJS app to Heroku
JavaScript CSS
Switch branches/tags
Nothing to show
Latest commit 3d68ad8 Aug 18, 2017 @alanbsmith Bumps version to 1.1.0

README.md

React Router + Node Starter

for Heroku deployment

OVERVIEW

This is a simple starter to get you up and running for React Router projects. This is intended to provide:

  • a lightweight Webpack config (for development and production)
  • some helpful tooling for development workflow
  • a similar setup to what you'll see in the wild
  • Heroku-ready deployment setup

UP & RUNNING

  • Install dependencies $ npm install or $ yarn

  • Fire up a development server:

  • $ npm run dev

Once the server is running, you can visit http://localhost:8080/

Linting

This assumes you have eslint and eslint-watch installed. If you don't, run the following:

$ npm i -g eslint eslint-watch

or if you need permissions:

$ sudo npm i -g eslint eslint-watch

To run the linter once:

$ npm run lint

To run the watch task:

$ npm run lint:watch

Testing

To run the tests:

$ npm test

To run the watch task:

$ npm run test:watch

Production Build

To build your production assets and run the server:

$ npm start

CHANGELOG

v1.0.0 This app has been updated to use React v15.5 and Webpack 2.3! 🎉

Major Changes:

  • Updates React and ReactDOM to v15.5
  • Updates Webpack to v2.3
  • Enables hot-reloading for local development
  • Adds initial test suite with Enzyme, Expect, and Mocha

Minor Changes:

  • Updates all other dependencies to latest
  • Updates eslint rules
  • Updates npm scripts
  • Refactors server.js
  • Updates README

DEPLOYING TO HEROKU

This app is set up for deployment to Heroku!

This assumes you have already have a Heroku account and have the Heroku CLI installed

$ heroku login
$ heroku create -a name-of-your-app
$ git push heroku master
$ heroku open

NOTE

If you're using npm5+, heroku doesn't like having two .lock files present. So if you have a package.json.lock and a yarn.lock file, you'll need to put one in your .gitignore, or remove one.

Heroku will follow the build command in your package.json and compile assets with webpack.prod.config.js. It runs the Express web server in server.js.

If you're unfamiliar with Heroku deployment (or just need a refresher), they have a really great walkthrough here.

REACT + NODE STARTER

If you don't need the router, this is another small starter I built: https://github.com/alanbsmith/react-node-example

REDUX STARTER

If you're looking for a similar, minimalistic Redux starter, I would recommend Marc Garreau's here