programing

package-lock.json 파일을 .gitignore에 추가해야 합니까?

batch 2023. 8. 24. 21:54
반응형

package-lock.json 파일을 .gitignore에 추가해야 합니까?

프젝트에종속버잠전다그면명사다음용니합령을려을 합니다.npm install는 다파일만듭다라는 을 만듭니다.package-lock.json이 작업은 Node.js v8.0.0 및 npm v5.0.0 이후에 수행되었습니다.

이 파일을 커밋하는 것에 대한 Node.jsnpm 권장 사항에도 불구하고 이 파일을 수행하지 말아야 하는 시기와 관련된 몇 가지 우려 사항도 옵션입니다.일반적으로 우리는 프로젝트에서 약속하지만, 그럼에도 불구하고, 그것은 특이한 질문입니다.

우리가 커밋해야 하는 동안.package-lock.json기본적으로 파일에는 하지 말아야 할 특정 사례가 있습니다.를 들어,, 예를들어종, 프트의최버신테전다추있니수를 추가하는 이 될 수 .package-lock.json안으로.gitignore.

질문은 다음과 같습니다.

  1. 만약에package-lock.json이 파이추됨에 됩니다..gitignore?
  2. 우리가 그것을 해야만 하거나 해서는 안 되는 특별한 상황이 있습니까?

그가 아니다.package-lock.json 추가해서는 안 됩니다..gitignore대신, 저는 다음과 같이 강력하게 조언합니다.

  1. 추가합니다.package-lock.json 관리 합니다.
  2. 로컬 및 배포 파이프라인 모두에서 응용프로그램을 빌드할 때 대신 사용합니다.
    (계속)ci명령을 할 수 있습니다. 다음을통해 하십시오. npm@5.7은 다음과 같습니다. 의심스러운 경우 다음을 통해 npm을 업그레이드하십시오.
    npm install -g npm.)

의 큰 중 .npm install명령은 예상치 못한 동작으로 인해 변형될 수 있습니다.package-lock.json에, 면에반에.npm ci하고, 이 경우 합니다.package-lock.json그리고.package.json동기화되지 않았습니다.

또한.npm ci 의 존재를 요구합니다.package-lock.json오류가 없으면 오류가 출력됩니다.프로젝트의 종속성이 서로 다른 시스템에 걸쳐 안정적인 방식으로 반복적으로 해결된다고 신뢰할 수 있는 강력한 사용 사례가 있습니다.

더나가아,,npm ci전체를 핵으로 만듭니다.node_modules 대신 하는 것을 할 수 있습니다. 일반 종 을 추 성 가 속 폴 사 변 대 으 로 종 실 작 는 동 일 에 빠 니 다 속 릅 다 가 도 보 폴더인적반시하성업속제 신경컬하기로여하용더에를전▁folder▁before다니종 릅▁adding▁sure빠encies▁withencies▁changes▁making▁still가▁instead▁than▁the속▁faster▁while▁you속도▁your다▁work▁depend▁being▁depend▁actual▁a보성npm install.

package-lock.json즉, 항상 정확히 동일한 종속성 트리를 가진 알려진 작업 상태입니다.

과거에, 저는 프로젝트를 하지 않았습니다.package-lock.json/npm-shrinkwrap.json/yarn.lock임의종이손업데받를때빌문드실파다니일입있수는패할 (관리 지침을 하지만, 당신은 (많은 라이브러리들이 semvar 버전 관리 가이드라인을 준수하지만, 당신은 그것들이 사소한 업그레이드에서도 깨지지 않을 것이라는 보장은 없습니다.)

이러한 문제는 마지막으로 작동한 버전이 무엇인지 추측해야 하는 경우가 있기 때문에 해결하기 어렵습니다.

프로젝트의 최신 종속성 테스트와 관련하여:이것이 무엇입니까?npm update이며 저는 합니다. 경우 문제를 한 후 된 문제를 . 개발자는 로컬에서 테스트를 실행하고, 문제가 발생할 경우 문제를 해결하고, 변경 사항을 커밋합니다.package-lock.json실패하면 수 .)package-lock.json.)

을 한 없지만또모 추한하없는거만지경드번이우의그업예레는에때에필문을선수필요합있업택니한를다트이가데요가기할도수유보지한속성종든추▁further▁i예▁the)▁i▁attenance선encies).npm update {dependency}또는npm install {dependency}@2.1.3). 유지보수 하는 또 이유입니다 이것이 제가 수동 유지보수 단계로 간주하는 또 다른 이유입니다.

자동화를 원하는 경우 다음 작업을 생성할 수 있습니다.

  • 저장소를 체크아웃
  • npm 업데이트 실행
  • 시험을 보다
    • 테스트를 통과하면 저장소에 커밋하고 푸시합니다.
    • 그렇지 않으면 실패하고 수동으로 해결해야 할 문제를 보고합니다.

를 들어 Jenkins와 서버에서 되며, 을 Jenkins 하는 방법을 는 안 ..gitignore.


또는 npm 문서를 인용하려면:

생성된 패키지 잠금을 소스 제어에 커밋하는 것이 좋습니다. 이렇게 하면 팀, 배포, CI/연속 통합 및 패키지 소스에서 npm 설치를 실행하는 모든 사용자가 개발 중인 것과 동일한 종속성 트리를 얻을 수 있습니다.또한 이러한 변경 사항의 차이는 사람이 읽을 수 있으며 node_modules에 대해 npm이 변경한 내용을 알려주기 때문에 과도 종속성이 업데이트되었는지, 호이스트되었는지 등을 확인할 수 있습니다.

그리고 대 사이의 차이와 관련하여:

  • 프로젝트에 기존 package-lock.json 또는 npm-shrinkwrap.json이 있어야 합니다.
  • 패키지 잠금의 종속성이 패키지의 종속성과 일치하지 않는 경우.제이슨,npm ci패키지 잠금을 업데이트하는 대신 오류와 함께 종료됩니다.
  • npm ci에서는 한 번에 전체 프로젝트만 설치할 수 있습니다. 이 명령을 사용하여 개별 종속성을 추가할 수 없습니다.
  • 만약에node_modules합니다. 이 은 이미존다니합 이전에 됩니다. 이전에 자동으로 제거됩니다.npm ci설치를 시작합니다.
  • 절대로 쓰지 않을 것입니다.package.json또는 패키지 패키지: 설치가 기본적으로 중지됩니다.

언급URL : https://stackoverflow.com/questions/48524417/should-the-package-lock-json-file-be-added-to-gitignore

반응형