web-dev-qa-db-fra.com

Existe-t-il un moyen de forcer npm à générer package-lock.json?

Je l'ai supprimé par accident et j'ai apporté de nombreuses modifications à package.json depuis. Un npm install ou npm update ne génère plus package-lock.json. J'ai essayé de vider mon cache npm et mon cache nvm, mais rien ne semble fonctionner. Je l’ai essayé sur plusieurs versions de Node.js (6.10.3 Node.js - 3.10.10 npm, c’est ce sur quoi je voudrais que cela fonctionne), et il ne fonctionne sur aucun.

Existe-t-il un moyen de forcer npm à générer le fichier package-lock.json?

73
Big Money

Par défaut, package-lock.json est mis à jour chaque fois que vous exécutez npm install. Toutefois, ceci peut être désactivé globalement en définissant package-lock=false dans ~/.npmrc.

Lorsque le paramètre global package-lock=false est actif, vous pouvez toujours forcer la mise à jour du fichier package-lock.json du projet en exécutant:

npm install --package-lock

Cette commande est le seul moyen sûr de forcer une mise à jour de package-lock.json.

80
Mathias Bynens

Dans npm 6.x, vous pouvez utiliser

npm i --package-lock-only

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

L'argument --package-lock-only ne mettra à jour que le package-lock.json, au lieu de vérifier node_modules et de télécharger des dépendances.

25
Janusz Przybylski

Ceci est répondu dans les commentaires; package-lock.json est une fonction de npm v5 et supérieur. npm shrinkwrap vous permet de créer un fichier de verrouillage dans toutes les versions de npm.

11
LJHarb

package-lock.json est régénéré chaque fois que vous exécutez npm i.

0
Mcanic

Comme plusieurs réponses l'ont expliqué, vous devriez lancer:

npm i

MAIS s'il ne le fait pas résoudre ...

Vérifiez la version de votre exécutable npm. (Pour moi, c'était 3.xx qui n'utilise pas le _package-lock.json_ ( du tout))

_npm -v_

Il devrait être au moins 5.x.x (qui introduit le fichier package-lock.json.)

Pour mettre à jour npm sur Lunix, suivez les instructions celles-ci .

Pour plus de détails, veuillez lire this medium story.

0
betontalpfa