일반적인 워크 플로의 일부로 새 npm 잠금 파일 인 package-lock.json을 생성했습니다. 그러나 이번에는 모든 무결성 해시가 sha1에서 sha512로 변경되었음을 알았습니다. 여기서 무슨 일이 일어나고 있습니까?
"chalk": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.0.1.tgz",
- "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
[…]
}
답변
내가 볼 수 있듯이 npm은 무결성 체크섬을 sha1에서 sha512로 변경했습니다.
git 변경이 sha1에서 sha512로 진행되는 경우 해당 업데이트를 한 번 수행해야하며 그 후에는 괜찮을 것입니다.
다른 사람이 코드베이스로 작업하고 sha512에서 sha1 (내가 겪고 있던 문제)으로 git 변경을 본다면 다음을 실행하여 수정할 수 있습니다.
package-lock.json에 대한 git의 변경 사항을 무시하십시오.
npm i -g npm
rm -rf node_modules/
npm i
그러면 npm이 업데이트되고 새 체크섬 (sha512)이 존재하도록 모든 패키지가 다시 설치됩니다.
답변
Dave가 대답 한 것을 기반으로합니다. 내가 찾은 수정 사항은 다음을 수행하는 것입니다.
npm i -g npm
cd {working directory}
rm -rf node_modules/
rm package-lock.json
npm cache clear --force
npm i
우리는 모든 개발자를 위해 동시에이 작업을 수행했으며 이로 인해 병합 충돌을 일으키는 sha-512 대 sha-1 문제가 중지되었습니다.
답변
https://github.com/npm/npm/issues/17749 도 참조 하십시오 . 문제가 ‘수정’되었다고 주장하지만 그렇지 않습니다. 제거 node_modules
는 해결 방법입니다.
운영 체제와 관계가있을 수 있습니다. 우리는 지금 Linux 및 Windows 플랫폼의 개발자들과 함께이 문제를 해결하고 있습니다.
답변
@Daniel Cumings로서 package-lock.json
sha1 해시 를 제거 하기 위해를 제거해야했습니다. 다음 은 Daniel의 스크립트와 동일한 작업을 수행하는 참조 용 Windows CLI 명령 입니다.
npm i -g npm
rd /s /q "node_modules"
del package-lock.json
npm cache clear --force
npm i
답변
저는 큰 팀에서 일하고 있습니다. 모든 개발자가 npm
캐시를 정리하도록 강제하는 것은 어렵고 신뢰할 수 없습니다. 또한 이것은 매번 도움이되지 않습니다. 따라서 여전히이 npm 문제 (나와 동일)에 직면하고 있고 다른 도움이되지 않는 사람을 위해 최근에 구축 한이 git 기반 도구를 사용해보십시오 : https://github.com/kopach/lockfix . sha512 -> sha1
npm 잠금 파일의 무결성 변경을 되돌 립니다. 이것을 postshrinkwrap
스크립트에 추가하면 package.json
결국 모든 무결성 속성이로 설정되고 sha512
잠금 파일이 일치해야합니다.
npm install --save-dev lockfix
"scripts": {
"postshrinkwrap": "lockfix",
},
답변
이전 의견과 제안을 추가로 구축하여 기존 node_modules 폴더, 캐시를 지운 다음 git (다른 컴퓨터에서 커밋 된)에서 sha512 package-lock.json 파일을 가져 와서 마지막으로 npm i를 수행해야했습니다. . 이 같은:
npm i -g npm
rm -rf node_modules/
npm cache clear --force
git reset --hard
npm i
이 package-lock.json이 sha512를 사용하고 다른 변경 사항이 안정화 된 후.