Résumé:

Je recherche une stratégie sur la façon dont je pourrais trouver et corriger une erreur dans package-lock.json. Cette erreur casse npm install:

  • Comment puis-je comprendre ce qui a installé cette dépendance buble?
  • Puis-je simplement supprimer l'entrée?
  • Comment déterminer quelle devrait être la valeur de référence?

Détails

Je voulais mettre à jour mes node_modules. J'ai donc supprimé mon répertoire node_modules et j'ai exécuté npm install. Bien que cela ait toujours fonctionné dans le passé, il échoue maintenant avec l'erreur suivante (trouvée dans AppData \ Roaming \ npm-cache_logs \ XXXX-debug.log):

13 silly fetchPackageMetaData error for buble@github:pemrouz/buble#fdcd2bac2c8945816b6fe3b032e49b58cc728b14 Command failed: C:\Program Files\Git\mingw64\bin\git.EXE checkout fdcd2bac2c8945816b6fe3b032e49b58cc728b14
13 silly fetchPackageMetaData fatal: reference is not a tree: fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack Error: Command failed: C:\Program Files\Git\mingw64\bin\git.EXE checkout fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack fatal: reference is not a tree: fdcd2bac2c8945816b6fe3b032e49b58cc728b14
14 verbose stack
14 verbose stack     at ChildProcess.exithandler (child_process.js:271:12)
14 verbose stack     at emitTwo (events.js:125:13)
14 verbose stack     at ChildProcess.emit (events.js:213:7)
14 verbose stack     at maybeClose (internal/child_process.js:927:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

Je crois que la référence vient de /package-lock.json où je trouve 2 entrées utilisant cette référence. La recherche sur Internet m'a appris que /package-lock.json est mis à jour par npm. Je ne sais pas comment ce package à bulles a été ajouté à mon projet - doit être une dépendance d'un autre package, mais je n'ai pas les compétences pour savoir lequel. Les entrées ressemblent à ceci:

...
"buble": {
      "version": "github:pemrouz/buble#fdcd2bac2c8945816b6fe3b032e49b58cc728b14",
      "requires": {
        "acorn": "5.2.1",
...

La recherche de problèmes similaires sur Internet semble provenir d'utilisateurs qui tentent de synchroniser leurs référentiels. Ces solutions suggèrent des moyens de synchroniser les fourches dans Gitub qui ne s'appliquent pas à mon cas. Comme je peux le dire, quelqu'un a mis à jour le référentiel Github d'une manière qui rompt cette référence.

Donc, je cherche une stratégie sur la façon dont je pourrais résoudre ce problème. Comment puis-je comprendre ce qui a installé cette dépendance buble? Puis-je simplement supprimer l'entrée? Comment déterminer quelle devrait être la valeur de référence?

Merci d'avance pour toute direction

1
Steve B 20 nov. 2017 à 23:00

4 réponses

Meilleure réponse

J'ai fait fonctionner ça. Ce que j'ai fait a été de supprimer toutes les références à buble dans mon fichier package-lock.json (après avoir fait une copie de sauvegarde bien sûr). J'ai ensuite supprimé mon répertoire node_modules, j'ai fait npm cache clear --force, puis npm install. npm a pu tout recharger, et semble avoir ré-ajouté le package buble à mon package-lock.json maintenant avec une nouvelle valeur de référence.

Je ne sais pas si toutes ces étapes étaient nécessaires; à la fin je devenais désespéré et prêt à tout essayer. J'espère que ceci aide quelqu'un d'autre!

4
Steve B 20 nov. 2017 à 23:41

Je pense que vous pouvez exécuter npm install --no-optional buble, ce qui devrait empêcher l'installation de dépendances facultatives. Avant de faire cela, vous devez supprimer les anciens node_modules et recommencer à zéro.

https://docs.npmjs.com/cli/install

2
Taylor Roberts 20 nov. 2017 à 20:22

J'ai un problème similaire mais pas tout à fait le même. J'ai eu ce problème lorsque j'essaie d'installer npm dans l'environnement réseau de mon entreprise. Certains SSH et HTTPS sont bloqués. Le message d'erreur est

npm sill pacote Retrying git command: ls-remote -h -t https://github.com/pemrouz/buble.git attempt # 6
npm sill pacote Retrying git command: ls-remote -h -t https://github.com/pemrouz/buble.git attempt # 7

J'ai supprimé package-lock.json et refait l'installation de npm. Tout était bien.

0
heinels 5 juil. 2019 à 10:54

Mon problème était que je n'avais pas GIT github installé sur ma machine. Vous devez installer Git pour que l'installation de npm puisse l'utiliser pour télécharger des packages

0
Bartando 28 févr. 2020 à 20:29
47400078