Ich habe es versehentlich gelöscht und seitdem viele Änderungen vorgenommen package.json
. Ein npm install
oder npm update
nicht package-lock.json
mehr generieren . Ich habe versucht, meinen npm-Cache und meinen nvm-Cache zu löschen, aber nichts scheint zu funktionieren. Ich habe es auf mehreren Versionen von Node.js versucht (6.10.3 Node.js - 3.10.10 npm ist das, woran ich arbeiten möchte), und es funktioniert auf keiner.
Gibt es eine Möglichkeit, npm zum Generieren der package-lock.json
Datei zu zwingen ?
node.js
npm
package-lock.json
Großes Geld
quelle
quelle
package-lock.json
wird standardmäßig automatisch in npm ab Version 5npm-shrinkwrap.json
generiertnpm shrinkwrap
. In früheren Versionen war der Name der Sperrdatei und wurde manuell mit dem Befehl generiert .node 8.6.0
und mit aktualisiertnpm 5.3.0
und es hat funktioniert..gitignore
. Ich hatte versehentlichpackage-lock.json
in der.gitignore
irgendwie und weilpackage-lock.json
es nicht in der auftauchte,git status
warf es mich ab.Antworten:
Wird standardmäßig bei
package-lock.json
jeder Ausführung aktualisiertnpm install
. Dies kann jedoch global deaktiviert werden , indempackage-lock=false
in~/.npmrc
.Wenn die globale
package-lock=false
Einstellung aktiv ist, können Siepackage-lock.json
die Aktualisierung der Projektdatei erzwingen, indem Sie Folgendes ausführen:Dieser Befehl ist die einzige todsichere Möglichkeit, ein
package-lock.json
Update zu erzwingen .quelle
package-lock.json
.package-lock.json
wird nur von npm v5 + unterstützt.In npm 6.x können Sie verwenden
Laut https://docs.npmjs.com/cli/install.html
quelle
npm i --package-lock-only --only=production
scheint nicht zu funktionieren.package-lock.json
nur für Produktionsabhängigkeiten zu generieren . Wenn Sie es jedoch ausführennpm i --only=production
, sollten nur Produktionsabhängigkeiten installiert werden. Ihr Erstellungsprozess könnte also folgendermaßen aussehen: Installieren Sie alle Abhängigkeiten, erstellen Sie eine App, entfernennode_modules
und installieren Sie nur Produktionsabhängigkeiten.Dies wird in den Kommentaren beantwortet;
package-lock.json
ist eine Funktion innpm
Version 5 und höher.npm shrinkwrap
So erstellen Sie eine Sperrdatei in allen Versionen vonnpm
.quelle
package-lock.json
s nicht genau dasselbe ist wie Shrinkwrap-Dateien.npm-shrinkwrap.json
werden in der Registrierung veröffentlicht undpackage-lock.json
nicht.npm shrinkwrap
generiertnpm-shrinkwrap.json
, aber wie generieren Siepackage-lock.json
?--package-lock
Wie mehrere Antworten erklärten, sollten Sie Folgendes ausführen:
npm i
ABER wenn es nicht löst ...
Überprüfen Sie die Version Ihrer
npm
ausführbaren Datei. (Für mich war es 3.xx, daspackage-lock.json
(überhaupt) nicht verwendet )npm -v
Es sollte zumindest 5.xx (das eingeführt , die Paket-lock.json - Datei.)
Befolgen Sie diese Anweisungen, um npm unter Lunix zu aktualisieren .
Für weitere Details lesen Sie bitte diese mittlere Geschichte.
quelle
Wenn Ihre npm- Version niedriger als Version 5 ist, installieren Sie die höhere Version, um die automatische Generierung von package-lock.json zu erhalten .
Beispiel: Aktualisieren Sie Ihre aktuelle npm auf Version 6.14.0
Sie können die Liste der neuesten npm- Versionen von anzeigen
quelle
package-lock.json wird bei jeder Ausführung neu generiert
npm i
.quelle
node
undnpm
. Ich denke, es istnpm
> =5.0
undnode
> =7.0
, aber da bin ich mir nicht 100% sicher.node 6.11.3
Bei mir funktioniert das nicht .