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
?
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
.
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.
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
.
package-lock.json est régénéré chaque fois que vous exécutez npm i
.
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.