CRA

CRA 초기 폴더 및 파일 세팅 구성

node.modules

  • CRA를 구성하는 모든 패키지 소스코드가 존재하는 폴더

package.json

  • CRA 기본 패키지 외 추가로 설치된 라이브러리/패키지정보(종류,버전)가 기록되는 파일
  • 모든 프로젝트마다 package.json 하나씩 존재
  • “dependencies”
    • 리액트를 사용하기 위한 모든 패키지 리스트 , 버전 확인가능
      • 실제 코드는 node.modules 폴더에 존재
  • “scripts”
    • run : 프로젝트를 development mode(개발 모드) 실행을 위한 명령어
      • build : 프로젝트 production mode(배포 모드) 실행을 위한 명령어(서비스 상용화)

.gitignore

  • github에 올리고 싶지 않은 폴더 및 파일을 작성할 수 있음
  • push할 경우 .gitignore파일에 작성된 폴더 및 파일은 업로드가 되지 않음

node.modules 와 package.json에서 이중으로 패키지를 관리하는 이유

  • 실제 내가 작성한 코드 및 패키지는 내 로컬에만 존재
  • github 에 올릴 때 내가 작성한 코드와 함께 package.json(추가로 설치한 패키지 정보) 전달
  • 다른 사람이 그것을 (pull) 받아서 npm install 만 입력하면 package.json 에 기록되어 있는 패키지의 이름과 버전 정보를 확인하여 자동으로 설치
  • github 에 올릴 때, node.modules 는 불필요한 용량을 차지하기 때문에,.gitignore 파일에 github 에 올리고 싶지 않은 폴더와 파일을 작성 가능

기타 폴더

public

  • index.html
  • images
  • data - mock data 관리

src

  • components : 공통 컴포넌트 관리
  • pages : 페이지 단위의 컴포넌트 폴더로 구성
    • Login : Login.js , Login.scss
      • Main : Main.js , Main.scss
  • styles
    • reset.scss : css 초기화
      • commom.scss : 공통으로 사용하는 css 속성 정의
  • 기타
    • 여러 페이지에서 동시에 사용되는 컴포넌트 -> components 폴더에서 관리
      • 페이지 컴포넌트 -> pages 폴더에서 관리
      • 해당 페이지 내에서만 사용하는 컴포넌트 -> 해당 페이지 컴포넌트 폴더 하위에서 관리