I recently had to use react-window in a project. I did not want to use a full fledged framework for such a small task. I was looking for a way to add a few React components to an HTML page. My search ended at Parcel

In this guide, we’ll walk through how to set up a simple React app using Parcel, a fast and zero-config bundler. Let’s jump in!

Step 1: Setting Up the Project

Before we start, we’ll need to create a project folder and initialize it with a basic package manager configuration.

  1. Create a new directory for the project:

    mkdir react-parcel-demo
    cd react-parcel-demo
    
  2. Initialize the project with npm (or yarn if that’s your style):

    npm init -y
    

This will create a package.json file that manages all your project dependencies.

Step 2: Install React and Parcel

Next, let’s install the necessary dependencies: React, ReactDOM, and Parcel. React and ReactDOM are the core libraries for building and rendering React components, while Parcel will handle the bundling for us.

Run this command in your project folder:

npm install react react-dom
npm install --save-dev parcel

We are installing Parcel as a development dependency. It’s only needed during the build process, so we don’t need it in production.

Step 3: Create The Files

Let’s start writing the code!

  1. Create an index.html file:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>React with Parcel</title>
      </head>
      <body>
        <div id="root"></div>
        <script src="./index.js"></script>
      </body>
    </html>
    

Here, the <div id="root"></div> is where our React app will be injected. The script tag at the end links to the JavaScript file where our React code will live.

  1. Create an index.js file:

    import React from "react";
    import { createRoot } from "react-dom/client";
    import { App } from "./App.jsx";
    const domNode = document.getElementById("root");
    const root = createRoot(domNode);
    root.render(<App />);
    

Here, we’re importing React and ReactDOM, defining a basic App component, and rendering it inside the #root div we created in the HTML file.

  1. Create the App component:

    import React from "react";
    const App = () => {
      return (
        <div>
          <h1>Hello, React with Parcel!</h1>
          <p>This is a simple React app bundled with Parcel.</p>
        </div>
      );
    };
    

Step 4: Run Your Project

We are almost there! Now, let’s see our project in action.

  1. Run the following command to start the development server:

    parcel index.html
    

This will launch Parcel’s development server, and we’ll see something like this:

Server running at http://localhost:1234

Step 6: Build for Production

We can build the production version by running:

parcel build index.html

Parcel will bundle the app into a dist folder, ready to be deployed. The best part? No extra configuration needed—Parcel does it all for you.

Adding React to an HTML page with Parcel is surprisingly simple, and we’ve just done it! 🎉