2016-08-08 21 views
0

Ich habe eine package.json Datei, die alle Abhängigkeiten, die ich mit * habe, listet, aber ich möchte die neuesten Pakete. Ich habe versucht:Wie ersetzt man * in package.json Datei

npm install --save

Aber das ist nicht das * 's in der Datei zu ersetzen. Ich habe es auch mit leeren Saiten versucht, das hat nicht funktioniert.

Antwort

2

Ältere Versionen von npm aktualisieren package.json, wenn Sie npm update --save ausführen, aber this appears to be broken in recent versions.

Alternativ kann npm-check-updates Ihre package.json aktualisieren.

+0

Nein, dies bleibt noch * in meiner package.json Datei. – Costa

+0

Welche Version von npm? Funktioniert in 3.7.3 für mich. – josh3736

+0

[Sieht aus, als wäre das in den letzten Versionen von npm gebrochen.] (Https://github.com/npm/npm/issues/13555) – josh3736

2

npm versteht einige spezielle Schlüsselwörter in seiner package.json einer von ihnen latest

so sein Sie Ihre Datei manuell mit so etwas wie diese bearbeiten können:

'dependencies': { 
    'jquery': 'latest' 
} 

dies immer Sie sich die neueste der verfügbaren Version geben Jquery egal was.

+0

Aber es gibt keine Möglichkeit, npm zu erzählen, schnappen Sie sich die neueste, dann bearbeiten Sie meine package.json Datei mit '^ whatever.was.downloaded'? Oder etwas ähnliches? – Costa

+1

Nein, Sie müssen die Paketdatei manuell bearbeiten. Es ist wichtig zu beachten, dass "neueste" ist die letzte stabile Version, während "*" ist die letzte Version, stabil oder Alpha. Aber im Allgemeinen ist es eine schlechte Übung, weil es bedeutet, dass npm einige Ihrer Bibliotheken auf inkompatible Versionen aktualisieren kann. Es ist besser, es mit einigen Einschränkungen wie ~ ~ 2 zu sperren, um sich in eine Hauptversion zu sperren. – soueuls

+0

hmm ..... Okay, ich mache einen kleinen Website-Starter für mich. Die Idee ist es zu klonen, zu installieren und zu bearbeiten. Es wäre sinnvoll, die neueste stabile Version jedes Moduls zu Beginn eines neuen Projekts zu verwenden, aber ich möchte das Wort nicht spätestens dort lassen, da dies später zu brechenden Änderungen führen würde. – Costa

2

Ich würde vorschlagen, ersetzen Sie alles durch * und führen Sie npm update --save. Dies wird die Versionen der Abhängigkeiten aufschreiben.

So

"dependencies": { 
    "mongo": "*" 
} 

wird wie zu etwas

"dependencies": { 
    "mongo": "3.0.0" 
} 

EDIT: ein Benutzer einen guten Punkt, * können Sie in einigen Inkompatibilitätsprobleme bekommen, so dass Sie degradieren oder müssen möchten vielleicht beheben Sachen danach.

+0

Ich wünschte, dieser Befehl hätte das getan. Es tut es nicht. – Costa