[React] Configure a React & Redux Application For Production Deployment and Deploy to Now

In this lesson, we’ll make a few small changes to our scripts and add some environment variables that will be used at build time to get our application ready to be deployed to a production environment using the now CLI and publish our application to a production server.

React support .env file by default, add a .env file in the root folder:

REACT_APP_BASE_URL=http://localhost:9001/todos

which just holding our api configuration.

Also create a .env.production file:

REACT_APP_BASE_URL=./todos

Because we want json-server and our ui using the same domain & port, so here we can just use relative path.

To use the variable in .env, we can do:

const baseUrl = process.env.REACT_APP_BASE_URL;

export const getTodos = async () => {
    return await fetch(baseUrl)
        .then((response) => response.json());
};

Update package.json:

    "start": "json-server --static ./build db.json",
    "dev": "react-scripts start",

We change the original "start" to "dev".

Because after "build", there will be a "build" folder, so tell json-server to server the build folder and use db.json file a db.

After everything set up, just run:

now