React 기본 학습 -9. 중간 보충설명

React 기본 학습 -9. 중간 보충설명

리액트 강좌를 보면서 학습한 내용 정리용.

리액트 무료 강좌(웹게임) - ZeroCho TV

1. React Developer Tools 설치

React Developer Tools

0078-001.png

React Developer Tools 의 아이콘이 빨간색으로 되어 있는건 개발모드라는 의미이다. 0078-002.png

Redux 사용시에는 Redux DevTools 설치가 필요 Redux DevTools

빈 폴더에서 react프로젝트 만들때 실행하는 커맨드 모음(플러그인등은 그때그때 필요한거 설치하면 됨)

npm init
npm i react react-dom
npm i -D @babel/core @babel/preset-env @babel/preset-react babel-loader
npm i -D webpack webpack-cli
npm i -D webpack-dev-server
npm i -D @pmmmwh/react-refresh-webpack-plugin react-refresh

webpack.config.js

const path = require('path');
const webpack = require('webpack');
const RefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');

process.env.NODE_ENV = 'development';

module.exports = {
    name: 'wordrelay-setting',
    mode: 'development', // 실서비스: production // development
    devtool: 'eval',
    resolve: {
        extensions: ['.js', '.jsx']
    },

    entry: {
        app: ['./client'],
    }, // 입력

    module: {
        rules: [{
            test: /\.jsx?/,
            loader: 'babel-loader',
            options: {
                presets: [
                    // preset 에 상세 옵션 줄때 아래와 같이 설정 가능
                    ['@babel/preset-env', {
                        targets: {
                            browsers: ['> 5% in KR'], // 한국에서 점유율 5% 이상 브라우저에 대응
                        },
                        debug: true,
                    }], '@babel/preset-react'], // plugin 들의 모음이 preset 임.
                plugins: [
                    '@babel/plugin-proposal-class-properties',
                    // 'react-refresh/babel' // 이거 있으면 webpack build 안됨... why?
                    ]
            },
        }],
    },
    plugins: [
        new webpack.LoaderOptionsPlugin({ debug: true }),
        // new RefreshWebpackPlugin(), // 이거 있으면 webpack build 안됨... why?
    ], // 추가적으로 붙이고 싶은 것들이 있으면 여기

    output: {
        // path 와 publicPath 의 차이
        // path는 실제경로. publicPath 는 가상의 경로(상대경로)
        path: path.join(__dirname, 'dist'), // path.join 은 현재폴더 경로 + dist 를 반환함
        filename: 'app.js',
        publicPath: '/dist/', // publicPath 는 node의 express.static 과 비슷
    }, // 출력
    
    devServer: {
        publicPath: '/dist/',
        hot: true // 핫리로딩 - 변경점 감지
    },
};

Github : React-Study-1/3.숫자야구/

Pie's Tech Note

생계형 개발자의 메모장

comments powered by Disqus

    rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora