Starter project for building apps with React, NodeJS and ExpressJS with Hot Module Reloading.
Like this starter project? ⭐️ it on Github to support it! 😄
To run the development build, run npm run start:dev
.
The server is automatically built and reloaded using nodemon, and the client is Hot-module-reloaded. The client is avialable on port 9000
and the server APIs are available on port 9001
.
To build this project for production, run npm start
.
This will build the client and server files, and start the server on port 9001
This project transpiles the server files into a server.bundle.js
. This is for those who want to use unsupported ESNext features in Node, such as ES Modules, or for those who want to add in type checking via Typescript or FlowType.
If you don't want your server files transpiled/compiled through webpack, edit the following:
- In
package.json
scripts section- Remove
start:server
andbuild:server
. - Change
start:dev
to"concurrently 'npm run start:client' 'nodemon server/index.js'"
- Change
start
to"concurrently 'npm run build:client' 'NODE_ENV=production node server/index.js"
- Remove
- In
server/index.js
- Modify
import express from 'express
toconst express = require('express')
on line 1.
- Modify
I don't want my server to serve my client bundle in production / I want to upload my client to a CDN
In production, this project bundles the client and has the server serve both the client as well as the endpoints. If you do not want the API server to serve the client-side code, then make the following change
- In
server/index.js
, remove the block containingexpress.static('/', 'dist')
(lines 7-9).