Accueil·Messages d’erreur

npm · npm

Le message

npm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync.

Ce que cela veut dire

npm ci installe strictement ce que le lockfile enregistre, et il s'est arrêté avant de commencer parce que package.json demande quelque chose que le lockfile ne contient pas. Cela arrive quand quelqu'un a édité package.json à la main ou y a résolu un conflit sans lancer install, ou a committé package.json sans le lockfile à côté. Lancez npm install une fois en local pour que le lockfile corresponde, puis committez le lockfile : c'est tout le correctif. Supprimer package-lock.json pour passer outre réétablit au contraire toutes les dépendances vers des versions plus récentes et change en silence le contenu de votre build.

Le correctif

npm install
Émis par
npm
npm
20

Avec npm, la cause tient dans la première ligne code XXXX et non dans les six dernières lignes npm ERR!, et quand la panne vient de l'arbre de dépendances ou d'une compilation native plutôt que de votre code, supprimer node_modules puis réinstaller en règle environ la moitié.

Lire un message d’erreur

  • Lisez à partir de la première ligne. Plus on descend, plus il s’agit des entrailles de l’outil ; la cause est généralement en haut.
  • S’il y a un fichier et un numéro de ligne, commencez là — pas la première image de la pile, mais la ligne la plus haute qui nomme un fichier de vous.
  • Cherchez le message tel quel, mais retirez d’abord vos chemins et vos noms de variables : c’est cela qui empêche la correspondance.
  • La même situation se formule autrement selon la version de l’outil. Si les résultats sonnent faux, ajoutez le numéro de version.
  • Avant de coller un correctif, vérifiez ce qu’il jette. Certains sont irréversibles.

Questions fréquentes

Q. Que veut dire « npm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. » ?

npm ci installe strictement ce que le lockfile enregistre, et il s'est arrêté avant de commencer parce que package.json demande quelque chose que le lockfile ne contient pas. Cela arrive quand quelqu'un a édité package.json à la main ou y a résolu un conflit sans lancer install, ou a committé package.json sans le lockfile à côté. Lancez npm install une fois en local pour que le lockfile corresponde, puis committez le lockfile : c'est tout le correctif. Supprimer package-lock.json pour passer outre réétablit au contraire toutes les dépendances vers des versions plus récentes et change en silence le contenu de votre build.

Q. Comment le corriger ?

npm install — avant de le lancer, vérifiez plus haut ce que cette commande jette.

Q. Quel outil émet cela ?

npm. Cela relève de npm, et le message compte 18 mots.

Erreurs voisines