Creating React Application with Webpack.
In this Article, we will learn how to create a React App with Webpack 5.
1. Create a folder and initialize NPM
npm init -y
2. Install the following packages
npm i react react-dom
npm i -D @babel/core @babel/preset-env @babel/preset-react babel-loader css-loader html-webpack-plugin sass sass-loader style-loader url-loader webpack webpack-cli webpack-dev-server
3. Create .babelrc file
.babelrc
{ "presets": ["@babel/preset-env", "@babel/preset-react"] }
4. Create webpack.config.js file
webpack.config.js
const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin"); module.exports = { output: { path: path.join(__dirname, "/dist"), // the bundle output path filename: "bundle.js", // the name of the bundle }, plugins: [ new HtmlWebpackPlugin({ template: "src/index.html", // to import index.html file inside index.js }), ], devServer: { port: 3030, // you can change the port }, module: { rules: [ { test: /\.(js|jsx)$/, // .js and .jsx files exclude: /node_modules/, // excluding the node_modules folder use: { loader: "babel-loader", }, }, { test: /\.(sa|sc|c)ss$/, // styles files use: ["style-loader", "css-loader", "sass-loader"], }, { test: /\.(png|woff|woff2|eot|ttf|svg)$/, // to import images and fonts loader: "url-loader", options: { limit: false }, }, ], }, };
5. Create a /src folder and create the following files inside of it.
|-- src |-- App.js |-- App.scss |-- index.html |-- index.js
App.js
import React from "react"; const App = () => { return <h1>Hello React</h1>; }; export default App;
App.scss
h1 { color: red; }
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>React with Webpack</title> </head> <body> <div id="app"></div> <!-- Notice we are pointing to `bundle.js` file --> <script src="bundle.js"></script> </body> </html>
index.js
import React from "react"; import ReactDOM from "react-dom"; import App from "./App"; import "./App.scss"; const el = document.getElementById("app"); ReactDOM.render(<App />, el);
6. Create Serve and Build Scripts
In your package.json
file add the following
//.... "scripts": { "serve": "webpack serve --mode development", "build": "webpack --mode production" }, //....
7. Run and modify your App
Run the app with npm run serve
.
Open your browser on http://localhost:3030/
Try to modify and see the changes on the fly.
8. Build the App
Run npm run build
in the terminal.
You will see the following output.
|-- dist |-- bundle.js |-- bundle.js.LICENSE.txt |-- index.html
Now open index.html file and you should see your App.
Top comments (0)