devdependencies, dependencies

otter·2022년 7월 11일
1

사소한 궁금증들

목록 보기
1/2
post-thumbnail

얼마전 진행했던 프로젝트에서 lint가 이건 devdependencies가 아니니까 devpendencies 로 옮겨라 라는 빨간색 오류메세지를 띄웠다. 사실 지금까지 이 두가지 내용을 신경쓴 적은 따로 없었다. 하지만 lint가 띄운 이 메세지는 틀리지 않았을 것이라고 생각하고 일단 고쳐 놓았는데, 이 두개를 생각해본적이 없었으므로 생각을 해보기로 했다.

dependencies와 devdependencies

간단히 말하면, dependencies는 어플리케이션의 실행에 필요한 라이브러리들이고
devdepencies는 개발할때만 필요한 라이브러리이다.

쉽게 생각하면, esLint는 개발할때만 사용되는데 이는 dev항목에 있는 종속성으로 들어가는 것이 맞다. (어플리케이션과 관련 없고, 개발의 도움을 받기 위한 항목이므로)
사실 이렇게만 간단히 생각도 두가지 개념은 어렵지 않았는데, 이걸 나눠놓은 이유가 더 있을 것 같았다.

구분해 놓은 이유는 무엇일까?

물론 구분해놓으면 보기 쉽게 정리되어 있다는 장점은 알겠는데, 이를 구분해 놓은 이유는 무엇일까?

WORKDIR /code

COPY /FE/package.json package.json
COPY /FE/package-lock.json package-lock.json

RUN npm install --production

COPY /FE .

얼마전, 무중단 배포를 위해 백엔드 분이 작성해주셨던 코드의 일부인데 여기서 npm ci --production을 사용한다. npm ci --productiondevdependencies에 있는 부분은 새로 설치하지 않는다. 그렇다면 빌드 속도가 더 빨라지겠구나? 라는 생각이 들었다.

profile
http://otter-log.world 로 이사했어요!

0개의 댓글