이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 9038|회답: 0

NPM 설치가 생성하는 package-lock.json는 무엇인가요?

[링크 복사]
게시됨 2017. 12. 13. 오후 1:17:45 | | |
npm 트리 수정이나 어떤 행동 package.json node_modules 경우 package-lock.json가 자동으로 생성됩니다. 이 트리는 중간 의존성 업데이트와 관계없이 이후 설치가 동일한 트리를 생성할 수 있도록 생성되는 정확한 트리를 설명합니다.

이 파일은 소스 코드 저장소에 제출될 예정이며, 다양한 목적으로 제공됩니다:

팀원, 배포, 지속적 통합이 동일한 의존성을 설치하도록 보장하는 의존성 트리의 단일 표현을 설명합니다.

사용자가 디렉터리 자체를 커밋하지 않고도 이전 node_modules 상태로 "진행"할 수 있는 도구를 제공합니다.

읽기 쉬운 소스 컨트롤 차이를 통해 트리 변경 사항을 더 잘 가시화할 수 있도록 합니다.

그리고 npm이 이전에 설치된 패키지의 중복 메타데이터 해석을 건너뛸 수 있도록 하여 설치 과정을 최적화합니다.

package-lock.json에 관한 중요한 점은 이 패키지는 공개될 수 없으며, 최상위 패키지 외 어디에서든 발견되면 무시된다는 점입니다. npm-shrinkwrap.json와 포맷을 공유하며, 기본적으로 같은 파일이지만 게시가 가능합니다. CLI 도구를 배포하거나 릴리스 프로세스를 통해 프로덕션 패키지를 생성하지 않는 한 권장되지 않습니다.

만약 package-lock.json와 npm-shrinkwrap.json가 모두 패키지의 루트 디렉터리에 존재한다면, package-lock.json 완전히 무시됩니다.

원본 링크: https://docs.npmjs.com/files/package-lock.json


npm 5.x 출시 이후 5.6.0 잠금의 역할이 여러 차례 변경되었으며, 현재 인터넷상의 많은 작은 흰색 텍스트가 이전 문서 번역에 갇혀 있습니다.

npm3.x에서 npm5로 업데이트했는데, 'npm i'를 실행할 때 나타나는 현상이 인터넷의 대중 과학 기사와 일치하지 않는다는 것을 알게 되었습니다.

파일이 어떻게 수정되든 npm i가 반복적으로 실행되면 잠금 파일에 설명된 버전 정보에 따라 npm이 다운로드된다는 package.json이 언급되어 있습니다.

또한 npm i를 반복할 때 npm이 잠금 정보를 무시하고 package.json 내 패키지의 의미 버전 정보에 따라 업데이트 모듈을 다운로드한다는 점도 언급되어 있습니다(잠금 기능은 쓸모없는 것 같습니다).

**정보에 따르면, NPM 5.0 출시 이후 NPM 규칙이 세 번 변경되었습니다. **

1. NPM 5.0.x 버전, package.json가 어떻게 변하든 잠금 파일에 따라 NPM I가 다운로드됩니다

파일이 변경된 후 업데이트되지 않은 package-lock.json 파일 package.json · 호 #16866 · NPM/NPM https://github.com/npm/npm/issues/16866
이 문제는 이 문제를 불평하는 거예요. 분명히 수동으로 package.json을 바꿨으니, 업그레이드 패키지를 주세요! 그리고 이것이 5.1.0 문제로 이어집니다...

2. 버전 5.1.0 이후에는 npm 설치가 잠금 파일을 무시하고 최신 npm을 다운로드합니다.

그런데 누군가 왜 패키지 락이 무시되는지 이런 문제를 제기했습니다. · 호 #17979 · NPM/NPM https://github.com/npm/npm/issues/17979
이 불만은 결국 버전 5.4.2 이후에 규칙으로 발전했습니다.

3. 버전 5.4.2 이후, 왜 패키지 락이 무시되고 있나요? · 호 #17979 · NPM/NPM https://github.com/npm/npm/issues/17979


대략적으로 말하면, package.json가 변경되고 package.json가 잠금 파일과 다르면, npm은 'npm i'를 실행할 때 버전 번호와 의미에 따라 최신 패키지를 다운로드하고 잠금 상태로 업데이트합니다.

두 모드가 같은 상태라면, 실제 패키지 버전이 새로운지 여부와 상관없이 npm을 실행할 때 잠금 명령에 따라 다운로드됩니다.






이전의:통계를 보고하고 시간 방법을 보완해 데이터 없이 하세요
다음:npm 튜토리얼 (4): npm 패키지를 로컬에 설치하세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com