얼마전 진행했던 프로젝트에서 lint
가 이건 devdependencies
가 아니니까 devpendencies
로 옮겨라 라는 빨간색 오류메세지를 띄웠다. 사실 지금까지 이 두가지 내용을 신경쓴 적은 따로 없었다. 하지만 lint
가 띄운 이 메세지는 틀리지 않았을 것이라고 생각하고 일단 고쳐 놓았는데, 이 두개를 생각해본적이 없었으므로 생각을 해보기로 했다.
간단히 말하면, 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 --production
은 devdependencies
에 있는 부분은 새로 설치하지 않는다. 그렇다면 빌드 속도가 더 빨라지겠구나? 라는 생각이 들었다.