728x90
- Package.json :
프로젝트의 정보를 정의합니다. (name, version, dependencies...)
의존하는 패키지들의 정보를 version range(범위)으로써 정의합니다.
"name" : "example",
"version" : "1.0.0",
"dependencies" : {
"A" : "<2.1.0"
}
- Package-lock.json :
Package.json만으로는 정보가 부족하기 때문에 (범위로 정보를 주기 때문) 사용됩니다.
"name" : "example",
"version" : "1.0.0",
"dependencies" : {
"A" : {
"version" : "2.0.0",
"resolved" : "<https://registry.npmjs.org/A/-/A-2.0.0/tgz>",
"integrity" : "#",
}
}
Package-lock.json은 Package.json에 수정되거나 module이 구조가 변경될 때 당시의 의존성에 대한 정확하고 구체적인 정보들을 가지고 node_module 트리를 설명해줍니다.
Package-lock.json 파일이 존재하는 경우에는 Package.json 파일을 이용하지 않고 구체적으로 명시된 의존 패키지(Package-lock.json)들을 통해 node_module을 생성합니다.
(해당 파일의 스냅샷이라고 생각할 수 있습니다.)
패키지 version이 업데이트되거나 수정되는 경우에 package.json은 변동되지만 package-lock.json의 경우에는 동일한 node_module을 생성하게 해주기 때문에 같은 의존성을 설치할 수 있게 보장해주는 파일입니다.
따라서 협업시에는 pack-lock.json이 필요합니다.
반응형