본문 바로가기
SPA/React

[React] CRA 사용하지 않고 개발환경 세팅하기

by J4J 2022. 2. 15.
300x250
반응형

안녕하세요. J4J입니다.

 

이번 포스팅은 CRA 사용하지 않고 개발환경 구축하는 방법에 대해 적어보는 시간을 가져보려고 합니다.

 

 

 

개발환경 세팅 방법

 

[ 1. 작업할 폴더 생성 및 이동 ]

 

보통 React를 이용해 개발할 때는 대부분의 사용자들이 VSCode를 IDE로 선택합니다.

 

VSCode를 사용하시는 분들은 터미널을 이용하여 다음과 같이 간단하게 폴더 생성 및 이동을 해주시면 됩니다.

 

$ mkdir { 폴더 명 } // ex) mkdir init
$ cd { 폴더 명 } // ex) cd init

 

 

 

[ 2. package.json 생성 ]

 

$ npm init

 

 

 

명령어를 입력할 경우 다음과 같이 추가 정보를 입력해야 되는데 필요한 부분만 입력해주시면 되고 또한 괄호가 있는 곳은 입력을 하지 않을 경우 괄호 안의 내용들이 default값으로 설정됩니다.

 

package name: (init)
version: (1.0.0)
description: input description
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)

 

 

반응형

 

 

입력이 완료되면 다음과 같이 문구가 하나 나오는데 엔터를 눌러주시면 됩니다.

 

Is this OK? (yes)

 

 

 

[ 3. React 패키지 설치 ]

 

React를 이용해 개발할 수 있도록 도와주는 패키지들을 다음과 같이 설치해주시면 됩니다.

 

$ npm install react react-dom

 

 

 

[ 4. babel 패키지 설치 및 설정 ]

 

트랜스 파일러의 역할을 해주는 babel의 패키지들을 다음과 같이 설치해주시면 됩니다.

 

$ npm install -D @babel/core @babel/preset-env @babel/preset-react babel-loader

 

 

 

또한 추가적인 설정 파일을 생성해줘야 합니다.

 

폴더 최상단에 .babelrc 파일을 생성해주고 다음과 같이 입력해주시면 됩니다.

 

{
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ],

    "plugins": []
}

 

 

 

[ 5. webpack 패키지 설치 및 설정 ]

 

모듈 번들러의 역할을 해주는 webpack의 패키지들을 다음과 같이 설치해주시면 됩니다.

 

$ npm install -D webpack webpack-cli html-webpack-plugin webpack-dev-server

 

 

 

또한 webpack도 babel과 마찬가지로 추가 설정 파일을 생성해줘야 합니다.

 

폴더 최상단에 webpack.config.js 파일을 생성해주고 다음과 같이 입력해주시면 됩니다.

 

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
  // 개발모드, development or production
  mode: "development",

  // entry를 기준으로 연관된 모든 파일들을 번들링
  entry: "./src/index",

  // 번들링 될 파일 확장자 등록
  resolve: {
    extensions: [".js", ".jsx"]
  },

  // 바벨과 같은 로더 등록
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        use: "babel-loader",
        exclude: ['/node_modules/']
      }
    ]
  },

  // 빌드 설정
  output: {
    path: path.resolve(__dirname, "build"), // 빌드되는 파일들이 만들어지는 위치, __dirname: 현재 디렉토리
    filename: "bundle.js", // 번들파일 이름
  },

  // webpack 서버 설정
  devServer: {
    static: path.join(__dirname, "build"), // 이 경로에 있는 파일이 변경될 때 다시 컴파일
    port: 8088 // 서버 포트 지정
  },

  plugins: [
    new HtmlWebpackPlugin({
      // index.html에 output에서 만들어진 bundle.js를 적용하여, build에 새로운 html 파일 생성
      template: `./public/index.html`
    })
  ]
};

 

 

728x90

 

 

[ 6. package.json 수정 ]

 

위에서 설정한 webpack을 이용하여 작성된 코드들을 실행시킬 수 있도록 다음과 같이 package.json의 scripts부분을 수정해주셔야 합니다.

 

{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --open",
    "build": "webpack --config webpack.config.js"
  },
}

 

 

 

[ 7. 초기 파일 구성 ]

 

초기 파일들은 index.html, App.jsx, index.jsx로 총 3개의 파일을 생성해줘야 합니다.

 

 

 

  • index.html

폴더 최상단에 public 폴더를 생성해주고 그 안에 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>Document</title>
</head>
<body>
    <div id="root"></div>
</body>
</html>

 

 

 

  • App.jsx

폴더 최상단에 src 폴더를 생성해주고 그 안에 App.jsx를 생성해줍니다.

 

그리고 내용은 다음과 같이 작성해주시면 됩니다.

 

import * as React from 'react';

const App = () => {
    return (
        <div>
            <p>Hello, World!</p>
            <p>Hello, React!</p>
        </div>
    )
}

export default App;

 

 

 

  • index.jsx

App.jsx와 동일한 위치에 index.jsx를 생성해줍니다.

 

그리고 내용은 다음과 같이 작성해주시면 됩니다.

 

import * as React from 'react';
import ReactDom from 'react-dom';
import App from './App';

ReactDom.render(<App />, document.querySelector('#root'));

 

 

 

서버 실행

 

위의 모든 설정이 완료되었다면 다음 명령어를 이용하여 작성된 코드들을 확인해줄 수 있습니다.

 

$ npm run dev

 

 

 

설정대로 따라했다면 다음과 같이 화면이 나와야 정상입니다.

 

서버 실행

 

 

 

 

빌드

 

작성된 파일들을 배포하기 위해 빌드할 때는 다음 명령어를 이용해주시면 됩니다.

 

$ npm run build

 

 

 

그러면 폴더 최상단에 build라는 폴더가 새롭게 하나 생성되고 그 내부에 다음과 같이 2개의 파일이 생성되는 것을 확인할 수 있습니다.

 

빌드

 

 

 

파일 구성

 

파일 구성

 

 

 

 

 

 

 

이상으로 CRA 사용하지 않고 개발환경 구축하는 방법에 대해 간단하게 알아보는 시간이었습니다.

 

읽어주셔서 감사합니다.

 

 

 

728x90
반응형

댓글