package.json과 package-lock.json

정지웅·2023년 7월 25일

node.js로 개발하다 보면, 항상 package.json과 package-lock.json 이 두 파일을 마주할 때가 있습니다.
저 두 파일은 어떤 역할인지 대충 말고 정확하게, 그리고 npm에 대해서 정리해보겠습니다.

  • npm(node package module)
    -> npm은 이름에서 알 수 있듯이 node.js의 패키지를 관리할 수 있는 도구입니다. python의 pip이나 ruby의 gem 같은 개념입니다.

  • package.json
    -> 현 프로젝트에 대한 정보와 명령어 등등 그리고 npm을 통해 설치한 모듈들의 의존성을 관리하는 파일입니다. 설치한 모듈들은 dependency라는 key값 안에 내용이 들어가게 됩니다. 여기에는 특정한 버전을 명시하지 않고, version range(^, ~)를 사용하기도 합니다.

  • package-lock.json
    -> 그렇다면 요놈은 무슨 역할을 하는걸까요? 패키지 파일이 version range를 사용하고, 추후에 해당 패키지가 새롭게 배포된다면, 개발자마다 서로 다른 버전의 패키지를 사용하는 경우가 생기게 됩니다. 따라서, package-lock.json 파일에는 실제로 설치된 패키지들의 정확한 버전들이 들어가게 되고, 해당 파일이 있다면 해당 파일을 가지고 npm이 설치되게 됩니다.

[정리]
패키지를 공유할 때에는 node_modules을 제외하고 공유합니다. 새롭게 패키지를 설치할 때, package.json 파일을 참조하여 설치하고, 공유해준 사람과 버전 차이 없이 공유하기 위해서는 lock파일도 같이 공유해줘야 합니다.

출처 - https://manon-kim.tistory.com/entry/packagejson-%EA%B3%BC-package-lockjson-%EC%B0%A8%EC%9D%B4

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기