Pourquoi ne “npm install” réécrire paquet-lock.json?

J'ai récemment mis à niveau vers mnp@5. J'ai maintenant un paquet de verrouillage.fichier json avec tout de package.json. Je m'attends à ce que, quand je lance npm install que la dépendance versions devrait être tiré à partir du fichier de verrouillage pour déterminer ce qui devrait être installé dans mon répertoire node_modules. Ce qui est étrange, c'est qu'il se termine effectivement en place de la modification et de la réécriture de mon colis-lock.fichier json.

Par exemple, le fichier de verrouillage a tapuscrit spécifié pour être à la version 2.1.6. Puis, après la npm install de commande, la version a été modifiée pour 2.4.1. Qui semble à l'encontre de l'objectif d'un fichier de verrouillage.

Ce qui me manque? Comment puis-je obtenir mnp à fait respecter mon fichier de verrouillage?

  • Ce n'est pas la réponse à votre question donc j'espère qu'un commentaire est ok, mais avoir un regard sur le Fil. La commutation a pris moins d'une heure pour nous.
  • Le même problème mais à l'aide de fils de github.com/yarnpkg/yarn/issues/570 (très instructif)
  • Je vais avoir le même problème. Mon package-lock.json est regénérée quand je lance npm install. Ce sent comme un mnp bug. Utilisez-vous votre propre registre?
  • Voir aussi npm5 équivalent au fil de l'-pur-lockfile drapeau?
  • --no-save empêche de changer le fichier de verrouillage, mais cela n'affecte pas la dingo de premier niveau de dépendance de la mise à niveau de l'OP cite.
  • Pourquoi voudriez-vous attendre à quelque chose appelé paquet de verrouillage pour verrouiller les paquets? Paquet de verrouillage est analogue à la façon, lorsque vous mettez n'importe quel clé dans une serrure de porte, la serrure transforme lui-même pour correspondre quelle que soit la clé a été mis en place, puis ouvre la porte. Maintenant, si vous m'excuserez, je suis en retard pour une partie de thé avec un lapin.
  • Ce qui semble se produire avec les npm6 - j'ai couru npm i sans rien changer, et mon package-lock.json a été modifié (les versions sous tous les paquets dans requires changé). Il semble que prévu et de ne pas casser quoi que ce soit? Plus d'infos ici
  • Depuis les versions modifiées, ce qui devrait être reflété dans le paquet-lock ainsi

InformationsquelleAutor Viper Bailey | 2017-07-10