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.