[node.js] `npm install`을 실행하면`ERR! 코드 EINTEGRITY` (npm 5.3.0)

실행하는 동안이 오류가 발생합니다 sudo npm install. 내 서버에서 npm이 이전에 설치되었습니다. package-lock.json파일 삭제를 시도 하고 실행 npm cache clean --force했지만 작동하지 않았습니다.

내 npm 버전은 5.3.0입니다.

오류:

npm ERR! code EINTEGRITY
npm ERR! sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== integrity checksum failed when using sha512: wanted sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== but got sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==. (65117 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2017-11-29T05_33_52_182Z-debug.log



답변

참조 https://github.com/npm/npm/issues/16861를

이것은 나를 위해 일했습니다.
npm cache verify

그런 다음 다시 실행했습니다.
npm install -g create-react-app

예상대로 설치되었습니다. 문제가 해결되었습니다.


github 문제에 언급 된 다른 솔루션 은 다음과 같습니다.

npm cache clean --force

또는

Users%username%\AppData\Roaming(Windows 7) 에서 npm 및 npm-cache 폴더 삭제 및 실행npm install

또는

다음을 통해 npm 업데이트 npm i -g npm

또는

지우다 package-lock.json

또는

npm cache verify

또는

npm cache clean

또는

문제를 해결하려면 다음 단계를 수행하십시오.

  1. 모든 오래된 패키지 및 업데이트 테마 찾기 :
    npm outdated -g
    sudo npm i -g outDatedPKG
  2. 다음을 사용하여 npm을 최신 버전으로 업그레이드하십시오.
    sudo npm i -g npm
  3. package-lock.json파일을 삭제 합니다.
  4. _cacache에서 디렉토리 삭제 ~/.npm:
    npm cache verify
  5. 오류가 발생할 때마다 2 단계와 3 단계를 수행하십시오.
  6. 여전히 오류가 발생하면 npm의 캐시를 지 웁니다.
    npm cache clean --force

또는

  1. 에 프록시 추가 .npmrc~디렉토리 :

proxy=http://localhost:8123
https-proxy=http://localhost:8123

  1. 다시 시도하십시오! 느린 인터넷 연결과 검열로 인해이 추악한 문제가 발생할 수 있습니다.

또는

npm cache clear --force && npm install --no-shrinkwrap --update-binary

또는

npm config set package-lock false


답변

package-lock.json 파일을 삭제하고 설치를 시도하십시오.


답변

실제로 위의 내용은 서버 측의 네트워크 연결과 관련이 있습니다. 서버에서 연결 상태가 좋으면 npm 설치가 잘되고 오류가 발생하지 않았습니다.


답변

내 문제는 두 가지였습니다.

  1. 잘못된 package-lock.json 파일
  2. npm-shrinkwrap.json과 package-lock.json 파일의 존재

내가 한 일은 :

  1. package-lock.json 파일 삭제
  2. npm-shrinkwrap.json 파일 삭제
  3. npm 설치를 다시 실행했습니다 (좋은 패키지 잠금 파일을 다시 생성 함).

내 오류를 수정했습니다!


답변

문제는 실제로 package-lock.json 다른 분기의 작동 버전으로 교체 한 후에 작동했습니다.

흥미로운 것은 차이를 보는 것입니다.

차이

따라서 package-lock.json다운로드하는 파일이 변조되지 않았는지 확인 하기 위한 무결성 체크섬 이 있습니다. 어떻게 든 무결성 체크섬이 package-lock.jsonSHA-512 체크섬 대신 SHA1 로 대체되었습니다 . 나는 이것이 어떻게 일어 났는지 전혀 모른다.

다른 브랜치에 작동하는 버전이없는 경우 . 메시지 고려

npm ERR! code EINTEGRITY
npm ERR!
  sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
integrity checksum failed when using sha512: wanted
  sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
but got
  sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==
. (65117 bytes)

에서 처음 두 개의 체크섬으로 패키지를 찾습니다 package-lock.json.

sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==

세 번째 체크섬을 “integrity”필드에 넣습니다.

sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==

자세한 설명은 여기에 있습니다 .


답변

다음을 시도하십시오.

npm cache clean --force

이것은 나를 위해 일했습니다.


답변

해결 방법으로 다음 단계를 따르십시오.

  1. 프로젝트 디렉토리로 이동
  2. node_modules 디렉토리를 제거하십시오. rm -rf node_modules
  3. package-lock.json 파일을 제거하십시오. rm package-lock.json
  4. 캐시 지우기 : npm cache clean --force
  5. 실행 npm install --verbose
    하면 위의 단계를 수행 한 후에도 여전히 문제는 –verbose 우리에게 설치 명령의 출력을 제공하시기 바랍니다 존재.