Skip to content

ReactJS - Environment Setup

Setting up a modern React development environment is straightforward thanks to tools that handle complex configurations for you. This tutorial will focus on using Create React App and Vite, two popular choices for bootstrapping new React projects.

  • Node.js and npm: React development relies on Node.js (a JavaScript runtime) and npm (Node Package Manager) or Yarn. If you don’t have them installed, download Node.js from https://nodejs.org/ (npm comes bundled with it).

Create React App is an officially supported way to create single-page React applications. It sets up your development environment so that you can use the latest JavaScript features, provides a nice developer experience, and optimizes your app for production.

Open your terminal or command prompt and run the following command (npx is a package runner tool that comes with npm 5.2+):

npx create-react-app my-react-app

Replace my-react-app with your desired project name. This command will create a directory called my-react-app inside the current folder, set up the project structure, and install all necessary dependencies.

Step 1.2 - Navigate to Project Directory and Start Development Server

Section titled “Step 1.2 - Navigate to Project Directory and Start Development Server”
cd my-react-app
npm start

This will start the development server (usually at http://localhost:3000) and open your new React application in your default web browser. The server will automatically reload the page when you make changes to the code.

Vite is a modern frontend build tool that significantly improves the frontend development experience. It offers lightning-fast cold starts and Hot Module Replacement (HMR).

Step 2.1 - Create a New React App with Vite

Section titled “Step 2.1 - Create a New React App with Vite”

Open your terminal and run:

# Using npm
npm create vite@latest my-vite-app -- --template react
# Using yarn
yarn create vite my-vite-app --template react

Replace my-vite-app with your project name. Vite will prompt you to select a framework (choose React) and a variant (e.g., React with JavaScript or TypeScript).

Step 2.2 - Navigate to Project Directory, Install Dependencies, and Start Server

Section titled “Step 2.2 - Navigate to Project Directory, Install Dependencies, and Start Server”
cd my-vite-app
npm install # or yarn install
npm run dev # or yarn dev

This will start Vite’s development server (often at http://localhost:5173 or a similar port) with extremely fast HMR.

Understanding the Project Structure (Typical for CRA/Vite)

Section titled “Understanding the Project Structure (Typical for CRA/Vite)”

Both Create React App and Vite will generate a similar basic structure:

my-react-app/ (or my-vite-app/)
├── node_modules/ # All project dependencies
├── public/
│ └── index.html # The main HTML page for your app
│ └── ... # Other static assets like favicons
├── src/
│ ├── App.css # Styles for the App component
│ ├── App.js / App.jsx # The main App component
│ ├── index.css # Global styles
│ ├── index.js / main.jsx # Entry point for your React application
│ └── ... # Other components, assets, etc.
├── .gitignore # Specifies intentionally untracked files that Git should ignore
├── package.json # Lists project dependencies and scripts
└── README.md # Information about the project
  • public/index.html: The page template. React will inject your app into a DOM element (usually a <div> with an id like root) within this file.
  • src/index.js (CRA) or src/main.jsx (Vite with React): The JavaScript entry point. This file renders your root React component (typically <App />) into the DOM.
  • src/App.js or src/App.jsx: The main application component where you’ll start building your UI.

Let’s modify the default src/App.js (or src/App.jsx) to display a simple message.

src/App.jsx (Example for Vite, similar for CRA’s App.js)

Section titled “src/App.jsx (Example for Vite, similar for CRA’s App.js)”
import React from 'react';
import './App.css'; // You might have some default styling
function App() {
return (
<div className="App">
<header className="App-header">
<h1>Hello, Modern React!</h1>
<p>My first React application setup is complete.</p>
</header>
</div>
);
}
export default App;

The development server will automatically pick up these changes and refresh your browser.

Modern JavaScript (which React heavily utilizes) uses ES Modules for organizing code.

  • import statement: Used to bring in functions, objects, or primitives that have been exported from an external module (another file).
  • export statement: Used to export functions, objects, or primitives from a given file (or module) so they can be used by other programs with the import statement. You will see these extensively in React projects for managing components and utilities.

Tools like Create React App and Vite come pre-configured with build tools like Webpack (for CRA) or Rollup (underneath Vite for production builds) and transpilers like Babel. These tools handle:

  • Bundling: Combining your JavaScript files and dependencies into optimized files for the browser.
  • Transpiling: Converting modern JavaScript (and JSX) into browser-compatible JavaScript.
  • Development Server: Providing a local server with features like hot module replacement.

For beginners, you don’t need to configure these tools manually. As you become more advanced, you might explore customizing these configurations, but it’s not necessary to get started.

You are now set up with a modern React development environment! You can start building components and exploring the React ecosystem.