package.json 및 package.lock.json 설명



첫 번째 질문은 "package-lock.json 파일을 커밋해야 합니까?"입니다.

이에 대해 이야기하고 이 질문에 답해 봅시다.

package.json이 무엇인가요?

기본적으로 모든 노드 프로젝트의 핵심이라고 할 수 있습니다. 이 파일은 프로젝트에 대한 메타데이터를 저장하고 프로젝트의 종속성, 버전, 스크립트 등을 관리합니다.

package-lock.json이 무엇인가요?

일부 패키지를 설치하면 이 파일이 자동으로 생성됩니다. 정확한 버전 종속성 트리를 저장하고 다른 개발자의 종속성을 보장합니다. 사실 이것은 npm의 매우 중요한 기능인데 어떤 사람들은 이것을 이해하지 못합니다.

시맨틱 버전 관리는 어떻습니까?

"dependencies": {
"my_dep": "^1.0.0",
"another_dep": "~2.2.0"
}


  • 패치 릴리스: 1.0 또는 1.0.x 또는 ~1.0.4
  • 부 릴리스: 1 또는 1.x 또는 ^1.0.4
  • 주요 릴리스: * 또는 x

  • 물결표(~)와 캐럿(^)의 차이점은 무엇인가요?

    첫 번째 예에서 ^ 기호로 시작했으며 이것은 다른 것을 의미합니다.

    이 캐럿(^) 기호는 기본적으로 프로그램이 패치 릴리스와 마이너 릴리스를 업그레이드할 수 있지만 메이저 릴리스를 가져올 수 없다는 것을 의미합니다.

    npm install을 실행할 때 my_dep에 새 패치 릴리스 및 마이너 릴리스가 있으면 자동으로 최신 버전으로 업그레이드됩니다. 그러나 주요 릴리스로 업그레이드되지는 않습니다.

    물결표(~)는 프로그램이 패치 릴리스를 위해 업그레이드할 수 있지만 마이너 또는 메이저 릴리스로 업그레이드되지 않음을 의미합니다.

    npm ci 명령이란 무엇입니까?

    종속 항목에서 물결표(~) 또는 캐럿(^)을 사용할 때 npm install 명령을 실행하면 package-lock.json이 자동으로 재정의됩니다. 업그레이드하지 않고 정확한 종속성을 사용하려는 경우 이 명령을 쉽게 실행할 수 있습니다. 그리고 기본적으로 package-lock.json 파일을 커밋해야 하는 이유입니다.

    자원
  • https://docs.npmjs.com/about-semantic-versioning

  • 이 문서는 원래 medium에 게시되었습니다.

    좋은 웹페이지 즐겨찾기