TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

ReactJS Installation

ReactJS Installation with ReactJS Tutorial, ReactJS Introduction, ReactJS Features, ReactJS Installation, Pros and Cons of ReactJS, AngularJS vs ReactJS, Reactnative vs ReactJS, ReactJS Router, ReactJS Flux Concept, ReactJS Animations, ReactJS Discussion, ReactJS Quick Guide, etc.

<< Back to REACT

React Environment Setup

In this section, we will learn how to set up an environment for the successful development of ReactJS application.

Pre-requisite for ReactJS

  1. NodeJS and NPM
  2. React and React DOM
  3. Webpack
  4. Babel

Ways to install ReactJS

There are two ways to set up an environment for successful ReactJS application. They are given below.

  1. Using the npm command
  2. Using the create-react-app command

1. Using the npm command

Install NodeJS and NPM

NodeJS and NPM are the platforms need to develop any ReactJS application. You can install NodeJS and NPM package manager by the link given below.

https://www.TheDeveloperBlog.com/install-nodejs-on-linux-ubuntu-centos

To verify NodeJS and NPM, use the command shown in the below image.

React Environment Setup

Install React and React DOM

Create a root folder with the name reactApp on the desktop or where you want. Here, we create it on the desktop. You can create the folder directly or using the command given below.

React Environment Setup

Now, you need to create a package.json file. To create any module, it is required to generate a package.json file in the project folder. To do this, you need to run the following command as shown in the below image.

TheDeveloperBlog@root:~/Desktop/reactApp> npm init -y

React Environment Setup

After creating a package.json file, you need to install react and its DOM packages using the following npm command in the terminal window as shown in the below image.

TheDeveloperBlog@root:~/Desktop/reactApp>npm install react react-dom --save

React Environment Setup

You can also use the above command separately which can be shown as below.

TheDeveloperBlog@root:~/Desktop/reactApp>npm install react --save
TheDeveloperBlog@root:~/Desktop/reactApp>npm install react-dom --save

Install Webpack

Webpack is used for module packaging, development, and production pipeline automation. We will use webpack-dev-server during development, webpack to create production builds, and webpack CLI provides a set of commands. Webpack compiles these into a single file(bundle). To install webpack use the command shown in the below image.

TheDeveloperBlog@root:~/Desktop/reactApp>npm install webpack webpack-dev-server webpack-cli --save

React Environment Setup

You can also use the above command separately which can be shown as below.

TheDeveloperBlog@root:~/Desktop/reactApp>npm install webpack --save
TheDeveloperBlog@root:~/Desktop/reactApp>npm install webpack-dev-server --save
TheDeveloperBlog@root:~/Desktop/reactApp>npm install webpack-cli --save

Install Babel

Babel is a JavaScript compiler and transpiler used to convert one source code to others. It compiles React JSX and ES6 to ES5 JavaScript which can be run on all browsers. We need babel-loader for JSX file types, babel-preset-react makes your browser update automatically when any changes occur to your code without losing the current state of the app. ES6 support requires babel-preset-env Babel preset. To install webpack use the following command shown in the below image.

TheDeveloperBlog@root:~/Desktop/reactApp>npm install babel-core babel-loader babel-preset-env babel-preset-react babel-webpack-plugin --save-dev

React Environment Setup

You can also use the above command separately which can be shown as below.

TheDeveloperBlog@root:~/Desktop/reactApp>npm install babel-core --save-dev
TheDeveloperBlog@root:~/Desktop/reactApp>npm install babel-loader --save-dev
TheDeveloperBlog@root:~/Desktop/reactApp>npm install babel-preset-env --save-dev
TheDeveloperBlog@root:~/Desktop/reactApp>npm install babel-preset-react --save-dev
TheDeveloperBlog@root:~/Desktop/reactApp>npm install babel-webpack-plugin --save-dev

Create Files

To complete the installation process, you need to add the following files in your project folder. These files are index.html, App.js, main.js, webpack.config.js and, .babelrc. You can create these files by manually, or by using the command prompt.

TheDeveloperBlog@root:~/Desktop/reactApp>touch index.html
TheDeveloperBlog@root:~/Desktop/reactApp>touch App.js
TheDeveloperBlog@root:~/Desktop/reactApp>touch main.js
TheDeveloperBlog@root:~/Desktop/reactApp>touch webpack.config.js
TheDeveloperBlog@root:~/Desktop/reactApp>touch .babelrc

Set Compiler, Loader, and Server for React Application

Configure webpack

You can configure webpack in the webpack.config.js file by adding the following code. It defines your app entry point, build output and the extension which will resolve automatically. It also set the development server to 8080 port. It defines the loaders for processing various file types used within your app and wrap up by adding plugins needed during our development.

webpack.config.json

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
   entry: './main.js',
   output: {
      path: path.join(__dirname, '/bundle'),
      filename: 'index_bundle.js'
   },
   devServer: {
      inline: true,
      port: 8080
   },
   module: {
      rules: [
         {
            test: /\.jsx?$/,
            exclude: /node_modules/,
	    use: {
              loader: "babel-loader",
            }
         }
      ]
   },
   plugins:[
      new HtmlWebpackPlugin({
         template: './index.html'
      })
   ]
}

Now, open the package.json file and delete "test" "echo \" Error: no test specified\" && exit 1" inside "scripts" object, then add the start and build commands instead. It is because we will not perform any testing in this app.

{
  "name": "reactApp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --mode development --open --hot",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6",
    "webpack-cli": "^3.3.1",
    "webpack-dev-server": "^3.3.1"
  },
  "devDependencies": {
    "@babel/core": "^7.4.3",
    "@babel/preset-env": "^7.4.3",
    "@babel/preset-react": "^7.0.0",
    "babel-core": "^6.26.3",
    "babel-loader": "^8.0.5",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "html-webpack-plugin": "^3.2.0",
    "webpack": "^4.30.0"
  }
}

HTML webpack template for index.html

We can add a custom template to generate index.html using the HtmlWeb-packPlugin plugin. This enables us to add a viewport tag to support mobile responsive scaling of our app. It also set the div id = "app" as a root element for your app and adding the index_bundle.js script, which is our bundled app file.

<!DOCTYPE html>
<html lang = "en">
   <head>
      <meta charset = "UTF-8">
      <title>React App</title>
   </head>
   <body>
      <div id = "app"></div>
      <script src = 'index_bundle.js'></script>
   </body>
</html>

App.jsx and main.js

This is the first React component, i.e. app entry point. It will render Hello World.

App.js

import React, { Component } from 'react';
class App extends Component{
   render(){
      return(
         <div>
            <h1>Hello World</h1>
         </div>
      );
   }
}
export default App;

Now, import this component and render it to your root App element so that you can see it in the browser.

Main.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.js';

ReactDOM.render(<App />, document.getElementById('app'));

Note: If you want to use something, you need to import it first. To make the component usable in other parts of the app, you need to export it after creation and import it in the file where you want to use it.

Create .babelrc file

Create a file with name .babelrc and copy the following code to it.

.babelrc

{
   "presets":[
  "@babel/preset-env", "@babel/preset-react"]
}

Running the Server

After completing the installation process and setting up the app, you can start the server by running the following command.

TheDeveloperBlog@root:~/Desktop/reactApp>npm start

It will show the port number which we need to open in the browser. After we open it, you will see the following output.

React Environment Setup

Generate the Bundle

Now, generate the bundle for your app. Bundling is the process of following imported files and merging them into a single file: a "bundle." This bundle can then be included on a webpage to load an entire app at once. To generate this, you need to run the build command in command prompt which can be shown below.

TheDeveloperBlog@root:~/Desktop/reactApp> npm run build

This command will generate the bundle in the current folder(in which your app belongs) and will be shown as like below image.

React Environment Setup

2. Using the create-react-app command

If you do not want to install react by using webpack and babel, then you can choose create-react-app to install react. The 'create-react-app' is a tool maintained by Facebook itself. This is suitable for beginners without manually having to deal with transpiling tools like webpack and babel. In this section, I will be showing you how to install React using CRA tool.

Install NodeJS and NPM

NodeJS and NPM are the platforms need to develop any ReactJS application. You can install NodeJS and NPM package manager by the link given below.

https://www.TheDeveloperBlog.com/install-nodejs-on-linux-ubuntu-centos

Install React

You can install React using npm package manager by using the below command. There is no need to worry about the complexity of React installation. The create-react-app npm package will take care of it.

TheDeveloperBlog@root:~/>npm install -g create-react-app

Create a new React project

After the installation of React, you can create a new react project using create-react-app command. Here, I choose jtp-reactapp name for my project.

TheDeveloperBlog@root:~/>create-react-app jtp-reactapp

NOTE: You can combine the above two steps in a single command using npx. The npx is a package runner tool that comes with npm 5.2 and above version.

 TheDeveloperBlog@root:~/>npx create-react-app jtp-reactapp

The above command will install the react and create a new project with the name jtp-reactapp. This app contains the following sub-folders and files by default which can be shown in the below image.

React Environment Setup

Now, to get started, open the src folder and make changes in your desired file. By default, the src folder contain the following files shown in below image.

React Environment Setup

For example, I will open App.js and make changes in its code which are shown below.

App.js

import React from 'react';
import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Welcome To JavaTpoint.

	  <p>To get started, edit src/App.js and save to reload.</p>
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

NOTE: You can also choose your own favorite code editor for editing your project. But in my case, I choose Eclipse. Using the below link, you can download Eclipse for Ubuntu and install.

click Here to download Eclipse for Ubuntu and install

Running the Server

After completing the installation process, you can start the server by running the following command.

TheDeveloperBlog@root:~/Desktop>cd jtp-reactapp
TheDeveloperBlog@root:~/Desktop/jtp-reactapp>npm start

It will show the port number which we need to open in the browser. After we open it, you will see the following output.

React Environment Setup




Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf