// package.json
{
"dependencies": {
"react": "^17.0.0",
"react-dom": "^17.0.0"
},
"devDependencies": {},
"peerDependencies": {
"react": "^17.0.0"
}
}
node_modules
ㄴreact ^16.0.0 (dependancy)
ㄴexample_01_project ^0.0.1 (dependancy)
ㄴnode_modules
ㄴreact ^17.0.0 (peer dependancy)
example_01_project@0.0.1" has incorrect peer dependency "react@^17.0.0".
프로젝트에서 사용하는 패키지들의 버전을 고정 시켜 준다.
패키지 잠금 파일이 없다면?
// package.json
{
"dependencies": {
"react": "^18.0.0"
}
}
만약 18.1.0 버전부터 새로운 Hook이 생성되었다고 한다면 개발자 A와 개발자 B는 에러가 뜨면서 버그가 발생한다. 이전 버전에는 새로운 Hook이 없기 때문이다.
필요한 이유
패키지 잠금 파일은 프로젝트에 패키지를 설치하는 시점의 버전을 고정해 놓기 때문에 새로운 개발자가 clone 후, yarn install 을 해도 패키지 잠금 파일에 있는 버전이 설치된다.
따라서 git에 프로젝트를 업로드할 때는 패키지 잠금 파일을 포함해서 올리는 것을 추천한다.