Quand j'exécute `npm install`, il revient avec` ERR! code EINTEGRITY` (npm 5.3.0)

134

J'obtiens cette erreur lors de l'exécution sudo npm install. Sur mon serveur, npm a été installé plus tôt. J'ai essayé de supprimer le package-lock.jsonfichier et j'ai couru npm cache clean --force, mais cela n'a pas fonctionné.

Ma version npm est la 5.3.0.

L'erreur:

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
SANITH
la source
Consultez la solution ci-dessous pour contourner la cause du problème, en particulier lorsque la connectivité est un problème.
SherylHohman
Dans mon cas, cela a fonctionné en exécutant simplement à nouveau la commande!
kds23
1
L'exécution de 2 commandes suivantes a résolu mon problème. $ rm -rf package-lock.json node_modules $ npm install
Rao

Réponses:

200

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

Cela a fonctionné pour moi:
npm cache verify

Puis j'ai relancé:
npm install -g create-react-app

Et il s'est installé comme prévu: problème résolu


Les autres solutions mentionnées dans le problème github incluent:

npm cache clean --force

OU

Suppression des dossiers npm et npm-cache dans Users%username%\AppData\Roaming(Windows 7) et exécutionnpm install

OU

Mettre à jour npm par via npm i -g npm

OU

Supprimer package-lock.json

OU

npm cache verify

OU

npm cache clean

OU

Procédez comme suit pour résoudre le problème:

  1. Trouvez tous les packages obsolètes et mettez à jour le thème:
    npm outdated -g
    sudo npm i -g outDatedPKG
  2. Mettez à niveau npm vers la dernière version avec:
    sudo npm i -g npm
  3. Supprimer le package-lock.jsonfichier.
  4. Supprimer le _cacacherépertoire dans ~/.npm: npm cache verify
  5. Chaque fois que j'obtiens cette erreur, suivez les étapes 2 et 3.
  6. Si vous obtenez toujours l'erreur, effacez le cache de npm:
    npm cache clean --force

OU

  1. Ajouter un proxy .npmrcdans le ~répertoire:

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

  1. Réessayer! une connexion Internet lente et la censure peuvent causer ce problème horrible.

OU

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

OU

npm config set package-lock false

SherylHohman
la source
1
Je vous remercie! Cela a été très utile et j'ai résolu mon problème en choisissant certaines des options proposées.
jfajunior
Super !! Tellement heureux d'aider :-)
SherylHohman
3
Sheryl, tout d'abord: merci d'avoir pris le temps de répondre. Il est clair que votre réponse a été utile aux gens. Puis-je vous demander ce que fait chacune de ces alternatives et pourquoi certaines peuvent fonctionner alors que d'autres ne le font pas? Merci!
Andres F.
1
@AndresF. Je n'ai pas une compréhension approfondie du fonctionnement du bas du fil, ou quand / pourquoi certaines méthodes fonctionnent sur d'autres. Dans certains cas, ils accomplissent essentiellement la même chose, mais la déclenchent d'une manière différente. J'ai lié au problème github où toutes ces solutions ont été présentées - c'est la source de la liste compilée dans ma réponse. Je suggère de faire des recherches sur le dessous du fil et du npm, ou de vérifier le problème de github lié, peut-être contacter des auteurs individuels si nécessaire.
SherylHohman
En cas de mise à jour de la version node js sur la machine locale, cela passera par cette erreur.
gnganpath
44

Supprimez le fichier package-lock.json, puis essayez d'installer

Gaurav Joshi
la source
Merci pour ce commentaire, cela m'a aidé à résoudre le problème, lorsque je déployais un site GatsbyJS sur Netlify.
sathishpaul
J'ai tout essayé ci-dessus et c'était la solution!
Adam Boczek
ouais Cela a fonctionné après la suppression du package-lock.jason et la relance de l'installation de npm
CJM
25

En fait, ce qui précède est lié à la connectivité réseau côté serveur. Lorsque j'ai une bonne connectivité dans le serveur, l'installation de npm s'est bien déroulée et n'a généré aucune erreur

SANITH
la source
1
Le mien a fonctionné après le passage à une connexion VPN, c'est donc certainement un problème de connexion
bmukorera
13

Mon problème était 2 choses:

  1. Fichier package-lock.json incorrect
  2. L'existence de npm-shrinkwrap.json avec le fichier package-lock.json

Ce que j'ai fait, c'est:

  1. Suppression du fichier package-lock.json
  2. Supprimez le fichier npm-shrinkwrap.json
  3. Ran npm install à nouveau (qui a recréé un bon fichier de verrouillage de package)

Correction de mon erreur!

Mercure
la source
J'ai eu ce problème en s'appuyant sur AWS Codebuild. Cela a fonctionné pour moi. Merci.
bertie
11

Le problème était en effet dans package-lock.json, et après l'avoir remplacé par une version fonctionnelle d'une autre branche, cela a fonctionné.

Ce qui est intéressant, c'est de voir le diff:

diff

Il y a donc vraiment une somme de contrôle d'intégrité dans le package-lock.jsonpour vérifier que le fichier que vous téléchargez n'a pas été falsifié. C'est juste que d'une manière ou d'une autre, la somme de contrôle d'intégrité a été remplacée dans notre package-lock.jsonpar un SHA1 au lieu d'une somme de contrôle SHA-512. Je n'ai aucune idée de comment cela s'est passé.

Si vous n'avez pas de version fonctionnelle dans une autre branche . Considérez le message

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)

Trouvez le package par les deux premières sommes de contrôle dans package-lock.json:

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

et mettez la troisième somme de contrôle dans son champ "intégrité":

sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==

Une description plus détaillée est ici .

sashoalm
la source
où est le fichier package-lock.json?
Mamen
@Mamen dans le répertoire racine de votre application, suivant tp package.json. package.json répertorie les dépendances (packages) dont votre application a besoin pour compiler / exécuter. Lorsque vous exécutez yarn installou yarn, les packages répertoriés dans ce fichier seront téléchargés et installés afin que le projet / l'application puisse être exécuté. Le fichier "lock" est une différence entre npm et yarn, garantissant les versions de package et l'intégrité.
SherylHohman
1
La seule solution qui a failli le résoudre pour moi. La suppression package-lock.jsondevrait également y remédier. Au moins dans mon cas. Bien que ce ne soit apparemment pas souhaitable. Et pour être juste, je dois mentionner ici que OP a essayé de supprimer le fichier, de sorte que le cas où cette réponse adresse est probablement quelque peu différent.
x-yuri
4

Essayez ce qui suit:

npm cache clean --force

Cela a fonctionné pour moi.

Kolaaa
la source
3
Cela n'ajoute aucune valeur aux réponses qui sont déjà là. Le commentaire le plus voté mentionne déjà npm cache clean --force, donc cette réponse se lit simplement comme du bruit.
Au revoir StackExchange
2
Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire sur la manière et / ou la raison pour laquelle il résout le problème améliorerait la valeur à long terme de la réponse.
Donald Duck
4

Pour contourner le problème, suivez les étapes ci-dessous:

  1. Accédez au répertoire du projet
  2. Supprimez le répertoire node_modules: rm -rf node_modules
  3. Supprimez le fichier package-lock.json: rm package-lock.json
  4. Vider le cache: npm cache clean --force
  5. Exécuter npm install --verbose Si après avoir suivi les étapes ci-dessus, le problème persiste, veuillez nous fournir la sortie de la commande d'installation avec --verbose.
Vanessa Ortiz
la source
Je suis nouveau à npm. Verbose m'a donné un indice.
Andi AR
3

Il y a plusieurs réponses valides et utiles ici, mais j'aimerais ajouter que dans mon cas, la solution la plus simple était:

  1. Supprimer package-lock.json;
  2. Supprimer le dossier AppData \ Local \ npm \ cache ou AppData \ Roaming \ npm \ cache;
  3. Supprimer le dossier node_modules.staging;
  4. Exécutez à nouveau npm install.

Après cela, tout s'est bien passé.

jfajunior
la source
2

J'utilisais le registre npm privé et j'essayais d'installer le module npm privé. La connexion au registre local de npm l'a corrigé (commande utilisée npm --add-user)

Sai Ram
la source
2

J'étais coincé là-dedans pendant longtemps et c'est ce qui m'a aidé.

Essaye ça:

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

J'ai trouvé cette réponse après avoir fouillé dans les problèmes de GitHub !!

Raj
la source
1

La réponse de SherylHohman a résolu le problème que j'avais, mais seulement après avoir changé ma connexion Internet. Au départ, j'étais sur la connexion directe au travail et je suis passé à la connexion WiFi au travail, mais cela ne fonctionnait toujours pas.

En dernier recours, j'ai basculé mon WiFi sur un pocket-WiFi, et l'exécution de ce qui suit a bien fonctionné:

npm cache verify

npm install -g create-react-app

create-react-app app-name

J'espère que cela aide les autres.

AJ Singh
la source
1

J'ai eu un problème très similaire, et dans mon cas, cela a fonctionné en faisant:

npm clean

C'est l' option nucléaire car elle efface chaque paquet du cache comme expliqué ici .

Sebastian D'Agostino
la source
1

Cela n'a pas encore été mentionné, mais assurez-vous que votre TEMPS SYSTÈME est correct. S'il est trop désynchronisé, cela provoquera une erreur EINTEGRITY. Lorsque vous effectuez la publication / l'installation de npm.

Chad Scira
la source
0

La mise à jour .npmrcdes entrées des fichiers pour les packages étendus et non étendus a fonctionné pour moi. Alors j'ai fini par utiliser le

npm config set @scope_name:registry SCOPED_REGISTRY_URL

et

npm config set registry PUBLIC_REGISTRY_URL

Ketcomp
la source
0

Exécutez les commandes ci-dessous sur votre projet.

npm rm -rf node_modules && npm rm package-lock.json && npm rm -rf ~/.npm && npm install --update-binary --no-shrinkwrap
Général Omosco
la source
0

Je suis derrière le proxy de mon organisation, l'exécution des commandes suivantes a résolu le problème pour moi

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/
user3966432
la source
0

Nous avons eu ce problème à plusieurs reprises dans l'entreprise dans laquelle je travaille. La suppression du node_modulesdossier du dossier .nvm a résolu le problème:

rm -rf ~/.nvm/versions/node/v8.6.0/lib/node_modules
Technotronic
la source
0

La mise à jour .npmrcet le registre ont https://fonctionné pour moi

registry=https://registry.npmjs.org/
Matthew Blewitt
la source
0

Vous devez vérifier le suffixe DNS spécifique à la connexion lorsque vous tapez «ipconfig» ou «ifconfig» dans le terminal

Güçlü Kıvanç
la source
0

J'ai fait face au même problème. De plus, alors que j'essayais de résoudre le problème en choisissant des solutions auprès d'autres développeurs, j'ai rencontré quelques problèmes supplémentaires comme celui répertorié ici.

Angular 9 ng new myapp donne une erreur Le flux de travail schématique a échoué

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

Enfin, après avoir essayé de nettoyer le cache et de vérifier et réinstaller le nœud de différentes versions et la mise à jour npm, nvm et de nombreuses autres solutions telles que définir un proxy et une meilleure connexion Internet, je ne pouvais toujours pas trouver de solution.

Ce qui a fonctionné pour moi, c'est: j'ai parcouru un peu mon dossier C: \ Users ---, j'ai trouvé des fichiers package-lock.json et .npmrc. J'ai supprimé ceux-ci et réinstallé angular et essayé. npm l'installation et la désinstallation de différents modules ont commencé à fonctionner.

problème lors de la création à l'aide de <code> ng new sample-app </code>

code_Jammy
la source
0

Avant d'exécuter cette commande

npm install typescript -g

après avoir changé la commande, cela fonctionnait parfaitement.

npm install -g typescript
Bishwajit Vikram
la source
0

J'ai fait face à ce problème. C'était ma connectivité réseau. J'ai changé de réseau (du WiFi haut débit au WiFi 4G) et j'ai essayé. Ça a marché.

Mon FAI haut débit bloquait toutes les requêtes http. C'est peut-être la raison pour laquelle je suppose dans mon cas.

Mani Bharathy
la source
0

toutes les solutions ont échoué pour moi jusqu'à ce que je vérifie les paramètres du routeur; il a été réglé uniquement sur IPV4 .. J'ai changé et mis ipv4v6 et tout fonctionne bien maintenant.

k_a_ r_i_s-
la source
0

Aucune des réponses ci-dessus n'a fonctionné pour moi. La solution à mon problème était de changer la façon dont la dépendance de snapshot était consommée dans package.json. Utilisez le modèle suivant pour extraire la dépendance d'instantané dont vous avez besoin

"dependency": "git+http://github.com/[pathtoproject].git#[branchname]",
Zach Pedigo
la source
-1

Essaye ça

  Step-1) Delete package-lock.json from root folder.
  Step-2) Delete node_modules folder
  Step-3) run npm install command in root
Jitendra Suthar
la source