Kiedy uruchamiam polecenie `npm install`, zwraca ono komunikat` ERR! kod EINTEGRITY` (npm 5.3.0)


137

Otrzymuję ten błąd podczas pracy sudo npm install. Na moim serwerze npm został zainstalowany wcześniej. Próbowałem usunąć package-lock.jsonplik i uruchomiłem npm cache clean --force, ale to nie zadziałało.

Moja wersja npm to 5.3.0.

Błąd:

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

Zobacz Rozwiązanie poniżej, aby ominąć przyczynę problemu, zwłaszcza gdy występuje problem z łącznością .
SherylHohman,

W moim przypadku zadziałało, po prostu ponownie wykonując polecenie!
kds23

1
Uruchomienie następujących 2 poleceń rozwiązało mój problem. $ rm -rf package-lock.json node_modules $ npm install
Rao

Odpowiedzi:


202

Zobacz https://github.com/npm/npm/issues/16861

To zadziałało dla mnie:
npm cache verify

Następnie ponownie uruchomiłem:
npm install -g create-react-app

I został zainstalowany zgodnie z oczekiwaniami: problem rozwiązany


Inne rozwiązania wymienione w kwestii github to:

npm cache clean --force

LUB

Usuwanie folderów npm i npm-cache w Users%username%\AppData\Roaming(Windows 7) i uruchamianienpm install

LUB

Zaktualizuj npm przez npm i -g npm

LUB

Usunąć package-lock.json

LUB

npm cache verify

LUB

npm cache clean

LUB

Wykonaj następujące kroki, aby rozwiązać problem:

  1. Znajdź wszystkie przestarzałe pakiety i zaktualizuj motyw:
    npm outdated -g
    sudo npm i -g outDatedPKG
  2. Uaktualnij npm do najnowszej wersji za pomocą:
    sudo npm i -g npm
  3. Usuń package-lock.jsonplik.
  4. Usuń _cacachekatalog w ~/.npm: npm cache verify
  5. Za każdym razem, gdy otrzymuję ten błąd, wykonaj kroki 2 i 3.
  6. Jeśli nadal pojawia się błąd, wyczyść pamięć podręczną npm:
    npm cache clean --force

LUB

  1. Dodaj serwer proxy do .npmrcw ~katalogu:

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

  1. Spróbuj ponownie! Powolne łącze internetowe i cenzura mogą powodować ten brzydki problem.

LUB

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

LUB

npm config set package-lock false


1
Dziękuję Ci! Było to bardzo pomocne i rozwiązałem swój problem wybierając niektóre z podanych opcji.
jfajunior

Wspaniały !! So Glad to Help :-)
SherylHohman

3
Sheryl, pierwsza: dzięki za poświęcenie czasu na odpowiedź. To jasne, że twoja odpowiedź była pomocna dla ludzi. Czy mogę zapytać, co robi każda z tych alternatyw i dlaczego niektóre mogą działać, a inne nie? Dzięki!
Andres F.

1
@AndresF. Nie mam głębokiego zrozumienia, jak działa podbrzusze przędzy, ani kiedy / dlaczego niektóre metody działają na inne. W niektórych przypadkach zasadniczo osiągają to samo, ale wyzwalają to w inny sposób. Połączyłem się z kwestią github, w której wszystkie te rozwiązania zostały przedstawione - to jest źródło zestawionej listy w mojej odpowiedzi. Proponuję zbadać podbrzusze przędzy i npm lub sprawdzić temat na githubie, być może w razie potrzeby skontaktować się z poszczególnymi autorami.
SherylHohman

W przypadku jakiejkolwiek aktualizacji w wersji node js na komputerze lokalnym, przejdzie przez ten błąd.
gnganpath

47

Usuń plik package-lock.json, a następnie spróbuj zainstalować


Dziękuję za ten komentarz, pomógł mi rozwiązać problem, kiedy wdrażałem witrynę GatsbyJS w Netlify.
sathishpaul

Próbowałem wszystkiego powyżej i to było rozwiązanie!
Adam Boczek

tak, zadziałało po usunięciu pliku package-lock.jason i ponownym uruchomieniu instalacji npm
CJM

25

W rzeczywistości powyższe jest związane z łącznością sieciową po stronie serwera. Kiedy mam dobrą łączność na serwerze, instalacja npm poszła dobrze i nie zgłosiła żadnego błędu


1
Mój działał po przełączeniu się na połączenie VPN, więc jest to zdecydowanie problem z połączeniem
bmukorera

13

Mój problem dotyczył 2 rzeczy:

  1. Nieprawidłowy plik package-lock.json
  2. Istnienie npm-shrinkwrap.json wraz z plikiem package-lock.json

Co zrobiłem to:

  1. Usunięto plik package-lock.json
  2. Usuń plik npm-shrinkwrap.json
  3. Ponownie uruchomiono instalację npm (co spowodowało odtworzenie dobrego pliku blokady pakietów)

Naprawiono mój błąd!


Miałem ten problem podczas budowania na AWS Codebuild. To zadziałało dla mnie. Dzięki.
bertie

11

Problem rzeczywiście istniał package-lock.jsoni po zastąpieniu go działającą wersją z innego oddziału działał.

Co ciekawe, zobacz różnicę:

różn

Więc naprawdę jest suma kontrolna integralności w package-lock.jsoncelu sprawdzenia, czy plik, który pobierasz, nie został zmieniony. Tyle, że w jakiś sposób suma kontrolna integralności została w naszym zastąpiona package-lock.jsonSHA1 zamiast sumy kontrolnej SHA-512. Nie mam pojęcia, jak to się stało.

W przypadku, gdy nie masz działającej wersji w innym oddziale . Rozważ wiadomość

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)

Znajdź pakiet według pierwszych dwóch sum kontrolnych w package-lock.json:

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

i umieść trzecią sumę kontrolną w jej polu „integralność”:

sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==

Bardziej szczegółowy opis znajduje się tutaj .


gdzie jest plik package-lock.json?
Mamen

@Mamen w katalogu głównym aplikacji, następny tp package.json. package.json zawiera listę zależności (pakietów) potrzebnych aplikacji do skompilowania / uruchomienia. Po uruchomieniu yarn installlub yarnpakiety wymienione w tym pliku zostaną pobrane i zainstalowane, aby można było uruchomić projekt / aplikację. Plik „blokady” jest jedną z różnic między npm a yarn, zapewniając wersje pakietów i integralność.
SherylHohman

1
Jedyne rozwiązanie, które było bliskie rozwiązania dla mnie. Usunięcie package-lock.jsonpowinno również temu zaradzić. Przynajmniej w moim przypadku. Chociaż najwyraźniej nie jest to pożądane. I żeby być uczciwym muszę tutaj wspomnieć, że OP próbował usunąć plik, więc przypadek, że ta odpowiedź adresy jest prawdopodobnie nieco inny.
x-yuri

4

Spróbuj wykonać następujące czynności:

npm cache clean --force

To zadziałało dla mnie.


3
Nie dodaje to żadnej wartości do odpowiedzi, które już tu są. Najwięcej pozytywnych głosów już zostało wspomnianych npm cache clean --force, więc ta odpowiedź brzmi po prostu jako szum.
Goodbye StackExchange

2
Chociaż ten kod może odpowiedzieć na pytanie, dostarczenie dodatkowego kontekstu dotyczącego tego, jak i / lub dlaczego rozwiązuje problem, poprawiłoby długoterminową wartość odpowiedzi.
Kaczor Donald,

4

Aby obejść ten problem, wykonaj poniższe czynności:

  1. Przejdź do katalogu projektu
  2. Usuń katalog node_modules: rm -rf node_modules
  3. Usuń plik package-lock.json: rm package-lock.json
  4. Wyczyść pamięć podręczną: npm cache clean --force
  5. Uruchom npm install --verbose Jeśli po wykonaniu powyższych kroków problem nadal występuje, podaj nam dane wyjściowe polecenia instalacji z --verbose.

Jestem nowy w npm. Verbose dał mi jakąś wskazówkę.
Andi AR

3

Jest tu kilka trafnych i pomocnych odpowiedzi, ale chciałbym dodać, że w moim przypadku najprostszym rozwiązaniem było:

  1. Usuń pakiet-lock.json;
  2. Usuń folder AppData \ Local \ npm \ cache lub AppData \ Roaming \ npm \ cache;
  3. Usuń folder node_modules.staging;
  4. Ponownie uruchom instalację npm.

Potem wszystko poszło gładko.


2

Używałem prywatnego rejestru npm i próbowałem zainstalować prywatny moduł npm. Logowanie do lokalnego rejestru npm naprawiło to (użyte polecenie npm --add-user)


2

Utknąłem w tym przez długi czas i to mi pomogło.

Spróbuj tego:

npm cache clean --force
npm install --update-binary --no-shrinkwrap

Znalazłem tę odpowiedź po zagłębieniu się w problemy z GitHub !!


1

Odpowiedź SherylHohman rozwiązała problem, który miałem, ale dopiero po przełączeniu połączenia internetowego. Początkowo byłem na stałym łączu w pracy i przełączyłem się na połączenie Wi-Fi w pracy, ale to nadal nie działało.

W ostateczności przełączyłem Wi-Fi na kieszonkowe Wi-Fi i działało dobrze:

npm cache verify

npm install -g create-react-app

create-react-app app-name

Mam nadzieję, że to pomoże innym.


1

Miałem bardzo podobny problem iw moim przypadku zadziałał wykonując:

npm clean

Jest to opcja jądrowa , ponieważ usuwa każdy pakiet z pamięci podręcznej, jak opisano tutaj .


1

Nie było to jeszcze wspomniane, ale upewnij się, że CZAS SYSTEMOWY jest poprawny. Jeśli jest zbyt niezsynchronizowany, spowoduje błąd EINTEGRITY. Kiedy robisz npm publikuj / instaluj.


0

Aktualizowanie .npmrcwpisów plików dla pakietów z określonym zakresem i bez niego zadziałało. Więc skończyło się na użyciu

npm config set @scope_name:registry SCOPED_REGISTRY_URL

i

npm config set registry PUBLIC_REGISTRY_URL


0

Uruchom poniższe polecenia w swoim projekcie.

npm rm -rf node_modules && npm rm package-lock.json && npm rm -rf ~/.npm && npm install --update-binary --no-shrinkwrap

0

Jestem za serwerem proxy mojej organizacji, uruchomienie następujących poleceń rozwiązało problem

npm config set proxy http://proxy.yourproxydomain.com:port
npm config set https-proxy http://proxy.yourproxydomain.com:port
npm config set strict-ssl false
npm config set registry https://registry.npmjs.org/

0

Wielokrotnie mieliśmy ten problem w firmie, w której pracuję. Usunięcie node_modulesfolderu z folderu .nvm rozwiązało problem:

rm -rf ~/.nvm/versions/node/v8.6.0/lib/node_modules


0

Po wpisaniu „ipconfig” lub „ifconfig” w terminalu należy sprawdzić sufiks DNS specyficzny dla połączenia


0

Napotkałem ten sam problem. Poza tym, gdy próbowałem rozwiązać problem, wybierając rozwiązania od innych programistów, napotkałem kilka innych problemów, takich jak jeden wymieniony tutaj.

Angular 9 ng nowego myapp daje błąd. Schemat przepływu pracy nie powiódł się

https://medium.com/@codewin/npm-warn-deprecated-request-2-88-2-b6da20766fd7

Wreszcie po wypróbowaniu czyszczenia pamięci podręcznej oraz weryfikacji i ponownej instalacji węzła różnych wersji oraz aktualizacji npm, nvm i wielu innych rozwiązań, takich jak ustawianie proxy i lepsze połączenie internetowe, nadal nie mogłem znaleźć rozwiązania.

U mnie zadziałało: przejrzałem trochę w moim folderze C: \ Users ---, znalazłem pliki package-lock.json i .npmrc. Usunąłem je i ponownie zainstalowałem kątowe i próbowałem. npm instalacja i deinstalacja różnych modułów zaczęła działać.

problem podczas tworzenia przy użyciu <code> ng new sample-app </code>


0

Zanim uruchomiłem to polecenie

npm install typescript -g

po zmianie polecenia działało idealnie.

npm install -g typescript

0

Zmierzyłem się z tym problemem. To była moja łączność sieciowa. Zmieniłem sieć (z szerokopasmowego WiFi na 4G WiFi) i spróbowałem. Zadziałało.

Mój dostawca internetu szerokopasmowego blokował wszystkie żądania http. To może być powód, który chyba w moim przypadku.


0

wszystkie rozwiązania zawiodły, dopóki nie sprawdziłem ustawień routera; był ustawiony tylko na IPV4 .. Zmieniłem i wstawiłem ipv4v6 i wszystko działa dobrze.


0

Żadna z powyższych odpowiedzi nie zadziałała dla mnie. Rozwiązaniem mojego problemu była zmiana sposobu używania zależności migawki w pliku package.json. Użyj następującego szablonu, aby pobrać wymaganą zależność migawki

"dependency": "git+http://github.com/[pathtoproject].git#[branchname]",

-1

Spróbuj tego

  Step-1) Delete package-lock.json from root folder.
  Step-2) Delete node_modules folder
  Step-3) run npm install command in root
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.