web-dev-qa-db-fra.com

l'installation de npm est bloquée dans fetchMetadata

Je ne suis actuellement pas en mesure d'exécuter npm install dans aucun projet depuis aujourd'hui .

Lorsque vous saisissez npm install, il reste bloqué sur fetchMetadata à chaque fois: ⸨ ░░░░░░░░░░░░░░░░⸩ ⠧ fetchMetadata: sill pacote range manifest for longest@^1.0.1 fetched in 197ms

J'ai essayé de revenir à npm 5.0.3 qui fonctionnait parfaitement, mais reste bloqué.

Détails sur mon ordinateur: MacBook Pro sous macOS 10.12.6

13
dschu

Tout d’abord, lancez npm install --verbose pour en voir plus!

Que s'est-il passé dans mon cas:

Dans votre package.json, recherchez les paquets que vous recevez directement de Github. Dans mon cas, un tel paquet n’existait plus . De telles lignes ressemblent à

"NAME_OF_PACKAGE": "git+ssh://[email protected]/SOME_USER/NAME_OF_PACKAGE.git",

Supprimez le package, corrigez le nom/l'emplacement ou passez à la version npm du package.


Remarque supplémentaire : J'ai eu plusieurs autres erreurs similaires, toutes identiques, mais le nom du paquet était différent de longest@^1.0.1. J'ai aussi eu p-try@something ou array-ify@something


Pour moi tout ce qui n'a pas fonctionné: rm -rf ~/.npm, npm cache clean ou rm package-lock.json tout n'a pas fonctionné !

6
Andru

La question est assez ancienne mais je suis tombé dans ce scénario ces jours-ci.

J'ai essayé toutes les suggestions que j'avais lues pour résoudre le problème lié au processus d'installation de npm (effacer et vérifier le cache npm, désinstaller et réinstaller le paquet, désinstaller et tout installer, etc.) qui ressemble au syndrome "bloqué". . Rien n'a réussi dans mon cas.

Une fois que j’ai constaté que mon réseau était pleinement opérationnel et fonctionnait sans pare-feu, proxy et/ou règles de routage étranges, j’ai commencé à installer des packages avec (exemple pour cli) npm install -g @angular/cli --verbose et j’ai découvert que toutes les connexions à l’URL registry.npmjs.org étaient effectuées en https. C'était le problème dans mon cas. 

Pour une raison inconnue, npm échoue dans des conditions peu claires lors de la connexion au serveur distant, sans erreur de réseau ni avertissement. Il faut simplement énormément de temps pour récupérer les données. Autorisations? Des certificats SSL ou des vérifications spécifiques? Une route étrange sur le net? 

Pour le moment ne sont que des spéculations. J'ai laissé l'ordinateur allumé toute la nuit et les paquetages ont été installés correctement, mais c'est dingue. N'est-ce pas?

Après avoir commuté les connexions sur http avec la commande npm config set registry http://registry.npmjs.org/ --global, tout a bien fonctionné dans un délai raisonnable pour le traitement des packages d'installation.

Il y a probablement quelque chose de plus qui me manque, mais dans mon cas, le http simple a résolu le problème.

Ubuntu 18.04.1 LTS/node v8.12.0/npm 6.4.1/nv 0.33.11

2
CptUnlucky

J'ai expérimenté cela et je l'ai corrigé avec rm -rf ~/.npm ou npm cache clean.

Si cela ne fonctionne pas, installez peut-être Homebrew au lieu de nvm pour éliminer certaines possibilités.

1
Seth Holladay

Je résous ce problème en ouvrant le fichier package-lock.json et en réinitialisant tous les fichiers json. Supprimer le contenu actuel et le remplacer par

{}

puis réinstallez le package.

0
Lekens

Ce n’était probablement pas la meilleure solution, mais ma solution de contournement consistait à: Pousser mes branches actives vers Origin, re-cloner mon dépôt dans un dossier différent, puis installer npm dans le nouveau dossier. 

0
Mark Jackson

Dans mon cas, supprimer le paquetage connecté à celui qui se charge pour toujours résoudre le problème

    "swagger-core-api": "apigee-127/swagger-core-api" //removing this 

Mais la vraie raison de problèmes similaires est le projet sans données git complètes transmises à github (à cause du désordre dans .gitconfig). Ensuite, github clone copie les fichiers qui ne correspondent à aucun fichier du référentiel (ou Download Zip). 

0
SkorpEN
  1. RAISON: la raison en est que: Le cli ne demande pas: "Entrez la phrase secrète pour /home/USERS/.ssh/id_rsa:" Et j’avais l’invite correctement dans npm @ 5, mais update à npm @ 6, cela se produit.
  2. RÉSOUDRE: # eval `ssh-agent` # ssh-add//automatiquement, entrez la phrase secrète, sans opération normale.
0
Qin Bo