package-lock.json 파일을 .gitignore에 추가해야 합니까?
프젝트에종속버잠전다그면명사다음용니합령을려을 합니다.npm install
는 다파일만듭다라는 을 만듭니다.package-lock.json
이 작업은 Node.js v8.0.0 및 npm v5.0.0 이후에 수행되었습니다.
이 파일을 커밋하는 것에 대한 Node.js 및 npm 권장 사항에도 불구하고 이 파일을 수행하지 말아야 하는 시기와 관련된 몇 가지 우려 사항도 옵션입니다.일반적으로 우리는 프로젝트에서 약속하지만, 그럼에도 불구하고, 그것은 특이한 질문입니다.
우리가 커밋해야 하는 동안.package-lock.json
기본적으로 파일에는 하지 말아야 할 특정 사례가 있습니다.를 들어,, 예를들어종, 프트의최버신테전다추있니수를 추가하는 이 될 수 .package-lock.json
안으로.gitignore
.
질문은 다음과 같습니다.
- 만약에
package-lock.json
이 파이추됨에 됩니다..gitignore
? - 우리가 그것을 해야만 하거나 해서는 안 되는 특별한 상황이 있습니까?
그가 아니다.package-lock.json
에 추가해서는 안 됩니다..gitignore
대신, 저는 다음과 같이 강력하게 조언합니다.
- 추가합니다.
package-lock.json
관리 합니다. - 로컬 및 배포 파이프라인 모두에서 응용프로그램을 빌드할 때 대신 사용합니다.
(계속)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
.
생성된 패키지 잠금을 소스 제어에 커밋하는 것이 좋습니다. 이렇게 하면 팀, 배포, 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
'programing' 카테고리의 다른 글
BeautifulSoup을 사용하여 노드의 자식을 찾는 방법 (0) | 2023.08.24 |
---|---|
하위 항목 가져오기 및 공백 없음 (0) | 2023.08.24 |
사용자 지정 원 단추 (0) | 2023.08.24 |
여러 데이터 파일로 테이블스페이스를 만드는 방법은 무엇입니까? (0) | 2023.08.24 |
두 개 이상의 인수에 대한 Numpy '논리적_or' (0) | 2023.08.24 |