[React] ⑧ WebPack 설치 및 개발환경구성 (2)

    728x90
    반응형

    2021.11.21

    71번째 포스팅

     

    입사 71일차.

    Create-React-App(이하 CRA)을 사용해도 된다. 오히려 좋은 방법일 가능성이 높다.

    하지만 개발자가 자신이 작성하는 코드의 의미도 모른채 그냥 넘어가도 되는걸까?

    오늘은 지난 포스팅에 이어 개발환경구성(2)를 이어서 작성해보려고 한다.

     

     

    0. 출처

    ① ZeroCho님의 무료 인프런강좌 (링크)

    ② Do it! 리액트 프로그래밍 정석 (eBook)

    ③ 초보자를 위한 Node.js 200제 (오프라인 구매)

     

     

    1. 프로젝트 기본구성파일

      ① 사용할 클래스명.jsx

      ② client.jsx

      ③ package-lock.json

      ④ package.json

      ⑤ webpack.config.js

      ⑥ index.html

     

     

    1. ClassName.jsx

      ① 기본구조

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // React Import
    const React = require(`react`);
    const { Component } = React;
     
    class ClassName extends Component {
    // class ClassName extends React.Component {
    // Component라는 변수에 React import 코드를 넣어 React.Component 대신 Component로 바꿀 수 
     
        state = {
            
        };
     
        render() {
     
        }
     
    }
     
    // 작성한 컴포넌트를 'ClassName' 이라는 이름으로 사용
    module.exports = ClassName;
    cs

      ② 모든 jsx파일에는 반드시 React를 import 해주어야 한다.

      ③ 다른 jsx파일에서 모듈로 불러올 수 있도록 module.exports = 모듈명; 을 반드시 하단에 작성해주어야 한다.

     

     

    2. client.jsx

      ① 기본구조

    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 1. React, ReactDOM Import
    const React = require('react');
    const ReactDom = require('react-dom');
     
    // 2. 상대경로에 있는 jsx파일
    const ClassName = require('./ClassName');
     
    // 3. 렌더링
    ReactDom.render(<ClassName />document.querySelector('#root'));
    cs

      ② 다른 모듈을 불러오는 jsx파일에도 반드시 React를 import 해주어야 한다.

      ③ 다른 모듈에서 불러올 필요가 없다면 module.export 코드를 작성해주지 않아도 된다.

     

     

    3. index.html

      ① 기본구조

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
    <head>
        <meta charset="UTF-8">
        <title>메인페이지</title>
    </head>
    <body>
        <div id="root"></div>
     
        <!-- html에서는 !하나의 스크립트!만 가져올 수 있다 -->
        <!-- 2개 이상의 파일을 app.js로 만들어주어야 한다 -->
        <script src="./dist/app.js"></script>
    </body>
    </html>
    cs

      ② html에는 하나의 스크립트만 불러올 수 있다.

          해당 설정은 webpack.config.js에서 작성한다.

     

     

    4. webpack.config.js

      ① 기본구조

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // webpack.config.js가 들어있는 절대경로를 가져온다
    const path = require('path');
     
    // 
    // html에서 하나의 스크립트만 사용할 수 있는 문제점을 해결
    module.exports = {
        name'name-setting',  // 설정이름 (개발자가 원하는대로 작성)
        mode: 'development',   // 운영시 'production'으로 교체
        devtool: 'eval',       // 소스맵을 제공하는 옵션
        
        // 입력
        entry: {
            // 2개 이상의 jsx는 배열로 작성 (확장자 생략가능)
            app: ['./client'],
        },
     
        // 출력
        output: {
            // webpack.config.js가 들어있는 경로 + /dist
            path: path.join(__dirname, 'dist'),
            
            // 파일이름 app.js
            fileName: 'app.js',
        }
    };
    cs

     

     

    5. webpack 빌드하기

      webpack을 빌드하는 방법은 3가지가 있다.

      ① package.json 파일의 scripts 수정

     

      ② npx webpack

     

     

    다음포스팅의 주제

     

    728x90
    반응형

    댓글