짤막지식 - 왜 CRA에서 패키지들이 전부 dependencies에 들어가있죠?

zzack·2020년 5월 29일
3

Create React App 을 이용해서 프로젝트를 시작하게 되면 package.json 파일에 모든 패키지들이 dependencies에 추가되어 있습니다.

  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "@types/jest": "^24.0.0",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.0",
    "@types/react-dom": "^16.9.0",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.1",
    "typescript": "~3.7.2"
  },

devDependencies@testing-library/react 같은걸 넣지 않았을까요?

아래와 같이 CRA Github에 누군가 질문을 했는데, Dan Abramov이 이렇게 답변했습니다.

https://github.com/facebook/create-react-app/issues/6180

Node 앱이면 dependencies 와 devDependencies 를 나누는게 의미가 있는데, CRA의 경우 결과물 자체가 static bundle이고, build시에만 모든 package를 이용하기때문에 궅이 따지자면 모든 dependencies가 development dependencies 입니다.

둘 중 어느곳에 넣어도 상관은 없지만, 일부 배포 스크립트가 동작하지 않을 수도 있기에 의도적으로 모든 패키지를 dependencies 에 넣었다고 합니다. :)

1개의 댓글

comment-user-thumbnail
2022년 6월 12일

저도 그 글 어제 봤어요! 근데 테스팅 라이브러리 같은것들은 왜 dependencies 에 있는지 궁금해요. 얘네들은 devdependencies 에 있어도 될것 같은데.. staging은 테스트를 수행하겠지만 정말 production 빌드를 할때는 테스트를 안하니까 dev로 가는게 맞다고 생각했어요.

답글 달기

관련 채용 정보