Skip to content

codebangkok/react

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

React - A JavaScript library for building user interfaces

Website

Package

VSCode Extension

Create React App - Simple

Webpack

  1. Create new directory and change to directory that you create
mkdir reactapp
cd reactapp 
  1. Init node package
npm init -y
  1. Install webpack
npm i --save-dev \
webpack-cli \
webpack-dev-server \
path
  1. Create a new file webpack.config.js
const path = require("path");

module.exports={
    mode: "development", 
    entry: "./src/index.js", 
    output: {
        path: path.resolve(__dirname, "public"),
        filename: "main.js"
    },
    target: "web",
    devServer: {
        port: "9500",
        static: ["./public"],
        open: true,
        hot: true ,
        liveReload: true
    },
}
  1. Create 2 directory
  • public
  • src
  1. Create file index.html to public directory and add 2 line in body
<div id="root"></div>
<script src="main.js"></script>
  1. Config start, build to package.json
  "scripts": {
    "start": "webpack-dev-server",
    "build": "webpack"
  },

Babel

  1. Add module to webpack.config.js
    resolve: {
        extensions: ['.js','.jsx','.json'] 
    },
    module:{
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                use:  'babel-loader'
            },
        ]
    }
  1. Create a new file .babelrc
{
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ],
    "plugins": [
        "@babel/plugin-transform-runtime"
    ]
}
  1. Install babel
npm i --save-dev \
babel-loader \
@babel/preset-env \
@babel/plugin-transform-runtime \
@babel/preset-react
  1. Install react
npm i react react-dom
  1. Testing Library
npm i -g jest-cli \
&& npm i --save-dev \
jest-environment-jsdom \
@testing-library/jest-dom \
@testing-library/react
  1. Create a new file jest.config.js
module.exports = {
    testEnvironment: 'jsdom',
}

Create React App - Full

  1. Install react, webpack, babel, linters, path, loader dependencies
npm init -y \
&& npm i react react-dom prop-types \
&& npm i --save-dev \
webpack-cli \
webpack-dev-server \
babel-loader \
@babel/preset-env \
@babel/plugin-transform-runtime \
@babel/preset-react \
path \
style-loader \
css-loader \
jest-environment-jsdom \
@testing-library/jest-dom \
@testing-library/react \
&& npm i -g jest-cli
  1. Create a new file webpack.config.js
const path = require("path");

module.exports={
    mode: "development", 
    entry: "./src/index.js", 
    output: {
        path: path.resolve(__dirname, "public"),
        filename: "main.js"
    },
    target: "web",
    devServer: {
        port: "9500",
        static: ["./public"],
        open: true,
        hot: true ,
        liveReload: true
    },
    resolve: {
        extensions: ['.js','.jsx','.json'] 
    },
    module:{
        rules: [
            {
                test: /\.(js|jsx)$/, 
                exclude: /node_modules/, 
                use:  'babel-loader' 
            },
            {
                test: /\.css$/i,
                use: ["style-loader", "css-loader"],
            },
        ]
    }
}
  1. Create a new file .babelrc
{
    "presets": [
        "@babel/preset-env", 
        "@babel/preset-react" 
    ],
    "plugins": [
        "@babel/plugin-transform-runtime"
    ]
}
  1. Create a new file jest.config.js
module.exports = {
    testEnvironment: 'jsdom',
}
  1. Config start, build, test scripts to package.json
  "scripts": {
    "start": "webpack-dev-server",
    "build": "webpack",
    "test": "jest --watch"
  },
  1. Create 2 directory
  • public
  • src
  1. Create file index.html to public directory
<!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</title>
</head>
<body>
    <div id="root"></div>
    <script src="main.js"></script>
</body>
</html>
  1. Create index.js to src directory
import React from "react"
import { createRoot } from "react-dom/client"

const App = () => {
    return <div>Hello World</div>
}

const el = document.getElementById("root")
const root = createRoot(el)
root.render(<App/>)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published