Sign inSign up

venkash/marketplace-docker-test

By venkash

•Updated over 8 years ago

okj

Image
0

3.4K

venkash/marketplace-docker-test repository overview

⁠react-full-stack-with-webpack

This is to build a full stack web application using React, Node.js, Express and Webpack. It is also configured with webpack-dev-server, eslint, prettier and babel.

⁠Development mode

In the development mode, we will have 2 servers running. The front end code will be served by the webpack dev server⁠ which helps with hot and live reloading. The server side Express code will be served by a node server using nodemon⁠ which helps in automatically restarting the server whenever server side code changes.

⁠Production mode

In the production mode, we will have only 1 server running. All the client side code will be bundled into static files using webpack and it will be served by the Node.js/Express application.

⁠Quick Start

⁠Go inside the directory

cd react-full-stack

⁠Install dependencies

npm install

⁠Start development server

npm run dev (it will run on 3000 port)

⁠Build for production

npm run build (it will generate production build dist folder with assets and bundle)

⁠Start production server

npm start (it will run express server and serve the build generated above)


## Documentation

### Folder Structure

All the source code will be inside **src** directory. Inside src, there is client and server directory. All the frontend code (react, css, js and any other assets) will be in client directory. Backend Node.js/Express code will be in the server directory.



### Nodemon

Nodemon is a utility that will monitor for any changes in the server source code and it automatically restart the server. This is used in development only.

nodemon.json file is used to describe the configurations for Nodemon. Below is the nodemon.json file which I am using.



Here, we tell nodemon to watch the files in the directory src/server where out server side code resides. Nodemon will restart the node server whenever a file under src/server directory is modified.

### Express

Express is a web application framework for Node.js. It is used to build our backend API's.

src/server/index.js is the entry point to the server application. Below is the src/server/index.js file



This starts a server and listens on port 8080 for connections. The app responds with `{username: <username>}` for requests to the URL (/api/getUsername). It is also configured to serve the static files from **dist** directory.

### Concurrently

 is used to run multiple commands concurrently. I am using it to run the webpack dev server and the backend node server concurrently in the development environment. Below are the npm/yarn script commands used.

```javascript
"client": "webpack-dev-server --mode development --devtool inline-source-map --hot",
"server": "nodemon src/server/index.js",
"dev": "concurrently \"npm run server\" \"npm run client\""

Tag summary

Content type

Image

Digest

Size

362.8 MB

Last updated

over 8 years ago

docker pull venkash/marketplace-docker-test