: 터미널에서 원하는 폴더로 들어간 후 (cd [폴더]) 아래의 명령어 입력.
npx create-react-app [프로젝트명]
브라우저로 연결
npm start
실행 중인 서버 종료
Ctrl + C
node_modules 폴더
: npm으로 설치한 패키지들이 저장되는 폴더. CRA가 프로젝트 환경을 구성하면서 필요한 패키지들을 다운받아 줌.
이 안에서 React, ReactDOM, Barbel등이 들어있어 매번 import해주지 않아도 된다.
public 폴더
: > index.html 파일
SPA을 구성하는 하나의 html이 바로 이 파일이다.
하지만 막상 body안에는 하나의 div만 존재하는데 이는 자바스크립트를 통해 모든 작업을 처리하기 때문이다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>React App</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(<App />);
.gitignore 파일
: 굳이 git으로 버전관리를 할 필요 없는 파일이나 폴더들은 여기 기입해두면 git에서 추적하지 않게 된다. 이 안에는 node_modules폴더가 들어있는데 너무나 방대한 양의 패키지를 git으로 관리할 필요가 없기 때문이다. 그렇기때문에 깃허브에서 clone받게 된다면 node_modules폴더가 없다. 이는 프로젝트를 제대로 구동할 수 없기 때문에 package.json 파일에 있는 패키지 정보를 이용해 npm install 명령어를 터미널에 입력하면 npm이 필요한 패키지들을 분석해 다운로드 시켜준다.
package-lock.json 파일
package.json 파일
: 패키지에 대한 정보가 기입되어 있다. dependencies항목에는 패키지가 의존하고 있는 패키지들에 대한 정보들이 있다.
README.md 파일
: 프로젝트에 대한 설명을 작성해 두는 파일이다.
: html이 하나인 애플리케이션. 하나의 html안에서 자바스크립트를 이용해 모든 처리를 한다.