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 package-lock.json
plus. 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 est ce sur quoi je voudrais qu'il fonctionne), et cela ne fonctionne sur aucune.
Existe-t-il un moyen de forcer npm à générer le package-lock.json
fichier?
node.js
npm
package-lock.json
Beaucoup d'argent
la source
la source
package-lock.json
génère automatiquement par défaut dans npm à partir de la v5, dans les versions précédentes, le nom du fichier de verrouillage étaitnpm-shrinkwrap.json
et il a été généré manuellement à l'aide de lanpm shrinkwrap
commande.node 8.6.0
et avecnpm 5.3.0
et cela a fonctionné..gitignore
. J'avais accidentellementpackage-lock.json
dans le d'une.gitignore
manière ou d'une autre et parce que jepackage-lock.json
ne me présentais pas,git status
cela me dérangeait.Réponses:
Par défaut,
package-lock.json
est mis à jour chaque fois que vous exécuteznpm install
. Cependant, cela peut être désactivé globalement en définissantpackage-lock=false
dans~/.npmrc
.Lorsque le
package-lock=false
paramètre global est actif, vous pouvez toujours forcer la misepackage-lock.json
à jour du fichier d' un projet en exécutant:Cette commande est le seul moyen infaillible de forcer une
package-lock.json
mise à jour.la source
package-lock.json
.package-lock.json
est uniquement pris en charge par npm v5 +.Dans npm 6.x, vous pouvez utiliser
Selon https://docs.npmjs.com/cli/install.html
la source
npm i --package-lock-only --only=production
ne semble pas fonctionner.package-lock.json
uniquement pour les dépendances de production. Mais si vous l'exécutez,npm i --only=production
il ne devrait installer que les dépendances de production. Ainsi, votre processus de construction pourrait ressembler à ceci: installer toutes les dépendances, créer une application, supprimernode_modules
et installer uniquement les dépendances de production.Ceci est répondu dans les commentaires;
package-lock.json
est une fonctionnalité de la version 5npm
et supérieure.npm shrinkwrap
est la façon dont vous créez un fichier de verrouillage dans toutes les versions denpm
.la source
package-lock.json
s ne sont pas exactement la même chose que les fichiers d'emballage rétractable.npm-shrinkwrap.json
seront publiés dans le registre, etpackage-lock.json
ne le seront pas.npm shrinkwrap
génèrenpm-shrinkwrap.json
, mais comment générez-vouspackage-lock.json
?--package-lock
Comme plusieurs réponses l'ont expliqué, vous devez exécuter:
npm i
MAIS si ça ne résout pas ...
Vérifiez la version de votre
npm
exécutable. (Pour moi, c'était 3.xx qui n'utilise pas lepackage-lock.json
(du tout))npm -v
Il doit être au moins 5.xx (qui a introduit le fichier package-lock.json.)
Pour mettre à jour npm sur Lunix, suivez ces instructions.
Pour plus de détails sur les fichiers de package de, veuillez lire cette histoire moyenne .
la source
Si votre version de npm est inférieure à la version 5, installez la version supérieure pour obtenir la génération automatique de package-lock.json .
Exemple: mettez à niveau votre npm actuel vers la version 6.14.0
Vous pouvez afficher la dernière liste des versions de npm par
la source
package-lock.json est regénéré à chaque exécution
npm i
.la source
node
etnpm
. Je pense que c'estnpm
> =5.0
etnode
> =7.0
, mais je ne suis pas sûr à 100% à ce sujet. Cela ne fonctionne pas avecnode 6.11.3
moi.