source

package-lock.json'을 삭제하여 충돌을 신속하게 해결

nicesource 2023. 9. 1. 21:06
반응형

package-lock.json'을 삭제하여 충돌을 신속하게 해결

팀 구성에서는 보통 병합 충돌이 발생했습니다.package-lock.json그리고 저의 빠른 해결책은 항상 파일을 삭제하고 재생성하는 것이었습니다.npm install저는 이 수정의 의미에 대해 심각하게 생각해 본 적이 없습니다. 왜냐하면 이전에 인식 가능한 문제를 일으킨 적이 없기 때문입니다.

파일을 삭제하고 다음을 수행하는 데 문제가 있습니까?npm충돌을 수동으로 해결하는 대신 그런 방식으로 다시 작성하시겠습니까?

네, 모든 프로젝트에 정말 나쁜 영향을 미칠 수 있고 영향을 미칠 것입니다.

  1. 당신의 팀이 뛰지 않는 경우npm install각각의 뒤에git pull모두 다른 종속성 버전을 사용하고 있습니다.그래서 그것은 "하지만 나에게는 효과가 있다!"와 "나는 왜 내 코드가 당신에게 효과가 없는지 이해할 수 없다"로 끝납니다.

  2. 모든 팀이 달려도npm install그것은 여전히 모든 것이 괜찮다는 것을 의미하지 않습니다. 어느 순간 당신은 당신의 프로젝트가 다르게 행동한다는 것을 발견할지도 모릅니다.몇 년 동안 변경하지 않은 부분이 있습니다. 디버깅을 수행한 후 3단계 종속성이 다음 주요 버전에 대해 업데이트되었으며 이로 인해 일부 변경 사항이 발생했습니다.

결론: 절대로 삭제하지 마십시오.package-lock.json.

예, 1단계 종속성의 경우 범위 없이 지정하면 다음과 같습니다(예:"react": "16.12.0") 실행할 때마다 동일한 버전이 표시됩니다.npm install그러나 깊이 2+ 수준의 종속성(의존성이 의존하는 종속성)에 대해서는 동일하게 말할 수 없습니다.package-lock.json안정성을 위해 정말 중요합니다.

당신의 경우 다음 방법을 사용하는 것이 좋습니다.

  1. 갈등을 해결하다package.json
  2. 달려.npm install

보이는 것만큼 쉽습니다.실도 마찬가지입니다. 잠금 파일 충돌을 자체적으로 해결합니다.여기서 모든 충돌을 해결하기 위한 유일한 요건입니다.package.json사전에

문서당 npm이 병합 충돌을 수정합니다.package-lock.json널 위해서.

[2021년부터 업데이트] 중요!만약 당신이 이미 일부 라이브러리를 사용하고 있고 그것의 유지 관리자의 npm/GitHub 계정이 해킹을 당한다면요.그리고 악성코드가 내장된 새로운 버전이 출시됩니다.그리고 당신은 그렇게 했어요.package-lock.json온전하게괜찮을 겁니다.만약 당신이 그것을 떨어뜨린다면 당신은 곤경에 처할 것입니다.

네, 나쁜 부작용을 일으킬 수 있습니다. 자주는 아니지만 예를 들어 패키지로 만들 수 있습니다.json"moduleX": "^1.0.0"그리고 당신은 예전에"moduleX": "1.0.0"package-lock.json.

삭제함으로써package-lock.json러닝npm install모듈 X의 1.0.999 버전으로 업데이트할 수 있으며 버그를 만들거나 역방향으로 변경했을 수 있습니다(의미론적 버전을 따르지 않음).

어쨌든 이미 표준 솔루션이 있습니다.

  1. 내부충 내부의 합니다.package.json
  2. 실행:npm install --package-lock-only

자세한 내용은 다음 링크를 참조하십시오.

https://docs.npmjs.com/cli/v6/configuring-npm/package-locks#resolving-lockfile-conflicts

오래된 질문인 것은 알지만 미래의 탐색자들을 위해서는 npm 관련 파일의 병합 문제를 자동으로 해결하려고 시도하는 npm-merge-driver를 사용할 수도 있습니다.

전체적으로 설치하기만 하면 됩니다.npx npm-merge-driver install --global여기에서 npm-merge-driver에 대한 자세한 내용을 읽을 수 있습니다.

편집: 위의 패키지를 사용하는 데 관심이 있는 사람들에게 때때로 패키지가 비정상적으로 작동하고 제거하기 어려울 수 있다는 것을 경고하고 싶습니다.그래서 비록 그것이 유용한 도구이지만, 여전히 약간의 작업이 필요합니다.

편집: 이 리포지토리는 이제 보관되고 읽기 전용입니다.

npm i --force입니까?

언급URL : https://stackoverflow.com/questions/54124033/deleting-package-lock-json-to-resolve-conflicts-quickly

반응형