Möchten Sie ein _Feature_ anfordern oder einen _bug_ melden?
_Fehler_
Wie ist das aktuelle Verhalten?
Wenn Sie yarn upgrade
ausführen, um eine Dev-Abhängigkeit zu aktualisieren, wird die aktualisierte Version der Abhängigkeit auch mit dem --dev
-Flag zum dependencies
-Hash in package.json
anstatt hinzugefügt devDependencies
.
Dies kann auch ein Problem mit anderen Abhängigkeitstypen (wie Peer) sein, aber ich habe es nicht getestet.
Wenn das aktuelle Verhalten ein Fehler ist, geben Sie bitte die Schritte zur Reproduktion an.
$ mkdir foo && cd foo
$ yarn init
<snip>
$ yarn add lodash<strong i="19">@3</strong> --dev
<snip>
$ grep lodash package.json -C 1
"devDependencies": {
"lodash": "3"
}
$ yarn outdated
yarn outdated v0.16.1
Package Current Wanted Latest
lodash 3.10.1 3.10.1 4.16.4
$ yarn upgrade lodash --dev
<snip>
success Saved 1 new dependency
└─ [email protected]
$ grep lodash package.json -C 1
"devDependencies": {
"lodash": "3"
},
--
--
"dependencies": {
"lodash": "^4.16.4"
}
Was ist das erwartete Verhalten?
yarn upgrade
sollte die Versionszeichenfolge des Eintrags im Hash devDependencies
aktualisieren.
Es wäre schön, wenn dies ohne --dev
Verwendung des aktuellen Speicherorts der Abhängigkeit möglich wäre (ein Upgrade eines Dev Dep würde devDependencies
ändern, ein Upgrade eines normalen Dep würde dependencies
ändern) .
Bitte geben Sie Ihre node.js, Garn und Betriebssystemversion an.
$ node --version
v6.9.1
$ yarn --version
0.16.1
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.12
BuildVersion: 16A323
Ich kann bestätigen, dass dies auf genau der gleichen Version von Yarn geschieht. Anstatt die vorhandene Entwicklungsabhängigkeit zu aktualisieren, wird "Abhängigkeiten" ein neuer Eintrag hinzugefügt und die vorhandene Entwicklungsabhängigkeit dort belassen.
Bestätigter Fehler auch hier.
Hier gilt das gleiche. standard
immer wieder in dependencies
eingefügt, obwohl es in devDependencies
lebt.
Ich habe sowohl yarn upgrade standard
als auch yarn upgrade standard -D
ausprobiert. Gleiche Sache.
Schönes Programm! Danke, dass du es gebaut hast!
Hier ist das gleiche Problem, kurz zuvor - # 1262
Hier gilt das gleiche.
Hier gilt das gleiche. Jedes Modul über aktualisierte yarn update
wird hinzugefügt dependencies
.
--dev
oder andere Optionen sind für yarn update
nicht dokumentiert und werden anscheinend ignoriert.
Das IMO-Update sollte entweder die gleichen Optionen wie install
akzeptieren - oder noch besser die Abhängigkeit in der Kategorie aktualisieren, in der es sich in package.json befindet
node --version
v6.9.0
yarn --version
0.16.1
Immer noch nicht behoben, ich verwende das neueste Garn, das über Homebrew installiert wurde.
@kube Könnten Sie bitte weitere Details hinzufügen, wenn es sich immer noch um ein Problem handelt? Versionen für OS, Node, Yarn? Ein package.json
, das zur Reproduktion verwendet werden kann?
λ yarn --version
0.16.1
Ich bin auf macOS 10.12.1, habe Yarn mit Homebrew installiert.
Und hier ist das package.json
an dem ich es versucht habe.
ts-loader
und webpack-merge
sind veraltet. Wenn Sie sie mit Garn aktualisieren, werden sie zu Abhängigkeiten hinzugefügt, sodass devDependencies veraltet bleiben.
@kube Bitte probieren Sie 0.17.0
, das gerade heute veröffentlicht wurde. Dieses Update war in dieser Version enthalten, jedoch nicht in 0.16.1
.
Sicher, aber Homebrew hat immer noch 0.16.1
λ brew upgrade yarn
Error: yarn 0.16.1 already installed
Versuchte die Installation mit NPM und hatte gerade die neueste Version, aber es scheint seltsam, Yarn mit NPM zu installieren.
Ok, bei Verwendung von 0.17.0 funktioniert alles einwandfrei, aber vielleicht sollten Sie die Brew-Version aktualisieren.
Welches ist der bevorzugte Paketmanager oder die bevorzugte Methode zur Installation von Yarn?
Brew ist die bevorzugte Installationsmethode für OSX. Es ist immer noch ein manueller Prozess, um es auf Homebrew zu aktualisieren, daher muss jemand verlangen, dass es wie hier aktualisiert wird: https://github.com/Homebrew/homebrew-core/pull/6060
Wenn ich yarn upgrade
ausführe, werden keine Versionen in package.json
aktualisiert. Dies ist ziemlich ärgerlich, wenn man von NPM kommt, bei dem die Nummern automatisch aktualisiert werden.
Ich verwende Garn 0.17.2 von Homebrew.
@milesj , dies sollte wahrscheinlich ein separates Problem sein und bitte geben Sie Schritte zum Reproduzieren zusammen mit einem package.json
, das wir zum Reproduzieren verwenden könnten.
Ich werde eine neue Ausgabe erstellen.
Bei Debian Stable, Garn 0.17.4, scheint dieses Problem zumindest behoben zu sein. Es wurde lodash@3
ordnungsgemäß auf lodash@4
aktualisiert, sodass es möglicherweise nur darum geht, auf die neueste Version zu wechseln.
Ich versuche, grunt-sass von 1.1.0
auf 2.0.0
aktualisieren (in meinen __dev-Abhängigkeiten__).
Ich führe yarn upgrade [email protected]
, füge aber grunt-sass in meine __dependencies__ ein und aktualisiere nicht das in __dev-dependencies__
Ich habe auch yarn upgrade [email protected] --dev
ausprobiert, aber das Problem bleibt weiterhin bestehen
Mit Garn v0.18.1 kann ich immer noch kein Upgrade einer Unterabhängigkeit erzwingen. yarn upgrade
fügt der package.json nur einen neuen Eintrag hinzu und aktualisiert die Unterabhängigkeit nicht.
Das Problem in 0.19.1 ist weiterhin vorhanden. Das Garn-Upgrade hat package.json nicht aktualisiert.
@kittens dies ist nicht durch # 1620 behoben
Ich kann dieses Problem auch in 0.19.1 bestätigen.
Jeder, der yarn add <package-name>
, aktualisiert Ihr gewünschtes Paket vorerst.
yarn upgrade
funktioniert auch bei mir nicht, v0.19.1
Das Garn-Upgrade aktualisiert derzeit nur yarn.lock, nicht package.json.
Kann das Problem in Version 0.20.3 bestätigen
Ich habe das gleiche Problem, wenn Garn-Upgrade verwendet wird, werden alle Pakete aktualisiert, aber nicht in der Datei package.json. v0.20.3 .. wirklich nervig. Ich habe auch festgestellt, dass bei Verwendung von "Garninstallation" die neuesten Versionen aller Listenpakete in package.json installiert werden und sich nicht an die darin genannten Versionen halten. Es ist also so, als würde Garn sie auf die neueste Version aktualisiert und spiegelt dies auch nicht wider in package.json, aber es zeigt in yarn.lock die aktuellen Versionen, die installiert wurden
@kittens v0.20.3 @ Windows und aktualisiert package.json immer noch nicht - nur die Datei yarn.lock. Sie sollten dies erneut öffnen.
Ich lasse Garn fallen und wechsle wegen dieses Fehlers zurück zu npm. Egal wie ich versuche, meine Pakete zu aktualisieren, Garn holt die neuesten in den Cache und behält die alten Versionen in meiner package.json und im Ordner node_modules. Was ist der Sinn?..
Ja! Ich kann bestätigen, dass Yarn v0.21.3 endlich package.json aktualisiert, mindestens den Befehl yarn upgrade-interactive
.
@alexdevero Ich habe gerade yarn upgrade
bei 3 meiner Projekte ausprobiert: Es wurde kein package.json aktualisiert ....
aber ich bestätige, dass yarn upgrade-interactive
funktioniert ... für das erste aktualisierte Projekt
Die nächste Verwendung von yarn upgrade-interactive
für andere Projekte, die dasselbe Upgrade benötigen, schlägt fehl, dh "Erfolg Alle Ihre Abhängigkeiten sind auf dem neuesten Stand."
Ich habe mit der Aktualisierung von React-Skripten von 0.9.x auf 0.9.3 für jedes meiner 3 Projekte getestet. yarn upgrade-interactive
arbeitete am ersten Projekt, ignorierte dann aber das Update für andere 2 Projekte.
Bis heute verhält sich yarn upgrade
in Version 0.21.3 immer noch falsch.
Ich verwende stattdessen yarn add package<strong i="7">@version</strong> --dev
und es aktualisiert das Paket wie gewünscht und aktualisiert package.json korrekt.
Fwiw, ich habe upgrade-interactive
was aus irgendeinem Grund besseres Glück zu bringen scheint.
🍒 🍒 🍒
Es wäre gut zu wissen, wie sich Garn in diesem Fall erwartet. Kann einer der Garnentwickler sagen, ob Garn package.json aktualisieren soll oder nicht?
Ich habe gerade ein yarn upgrade babel-cli
das sich in meinem devDependencies
und es wurde als Produktionsabhängigkeit hinzugefügt (zu dependencies
) ... etwas ist immer noch völlig kaputt. Oh, und ich benutze übrigens Garn v 0.22.0!
BEARBEITEN: Es stellte sich heraus, dass ich NODE_ENV auf "Produktion" gesetzt hatte (da meine App eine Knoten-App ist) und dies Dinge wie "Garninstallation" durcheinander bringt (was sich wie yarn install --production
verhält und devDependencies
komplett überspringt
Möglicherweise ist yarn upgrade
auch von der Knotenumgebungsvariablen betroffen.
Ich habe gerade Folgendes realisiert:
Ich bin kein Apologet oder so, ich denke, das sollte wieder geöffnet werden ... aber heilige Bälle. 720 Ausgaben reichen aus, um ein Kreuzfahrtschiff voller Garnentwickler zu ertränken.
Das Problem +1 ist in Yarn v0.21.3 unter Windows 10 Pro und Node 6.10.0 weiterhin vorhanden.
Dies ist nicht behoben. Ich bekomme es auf macOS Sierra 10.12.4. Ich habe einige devDependencies
die private Git-Repos sind, und ein Standard dependency
( "jquery": "^3.1.1"
). Die neueste Version von jQuery ist 3.2.1, und yarn upgrade
sieht das ( ├─ [email protected]
), aktualisiert aber nicht package.json
.
yarn --version
0.21.3
node --version
v7.7.4
Wieder öffnen.
Windows - v0.21.3 schlägt mit yarn upgrade
... fehl, wenn ein Paket angegeben wird, nachdem sowohl package.json als auch die Sperrdatei aktualisiert wurden.
Windows - v0.22 -
Zum Glück habe ich es nur für ein Projekt verwendet und konnte das Chaos beheben. Ich liebe die Idee hinter Yarn, aber ich werde mich nicht darum kümmern, bis dies sortiert ist.
Windows, Yarn v0.22 - aktualisiert package.json
wenn yarn upgrade
wie @LaughingBubba erwähnt. Der Ordner node_modules
wird aktualisiert, package.json
jedoch nicht, was in Paketversionen zu einem Durcheinander führt.
@kittens es scheint nicht, dass dies behoben wurde.
Ich habe das gerade in 0.23.2 wieder gesehen.
In meinem Fall scheint es so zu sein, dass wenn mindestens eine der in einer Liste aktualisierten Abhängigkeiten KEIN devDep ist, alle Aktualisierungen in Abhängigkeiten in package.json abgelegt werden.
Update: Wird auch beim Aktualisieren eines einzelnen devDep angezeigt. Es wird in Deps kopiert, ohne aktualisiert zu werden.
Dies ist definitiv nicht behoben. Ich habe jetzt eine Stunde verloren. Sollte Garn nicht besser sein als npm?
@ fab1an , yarn add package-name<strong i="6">@latest</strong> [--dev]
, um ein Paket zu aktualisieren. Es verhält sich wie erwartet von upgrade
und aktualisiert package.json korrekt.
@diegovilar Danke für den Tipp, aber das ist zu umständlich für mehr als 25 Dev-Abhängigkeiten. Ich habe gerade wieder npm-check -u
um sie zu aktualisieren.
Immer noch kaputt in Windows x64, Garn 0.23.2
Für alle, die hier kommentieren, schlage ich vor, in der Zwischenzeit yarn upgrade-interactive
. Hat hier ziemlich gut funktioniert.
Immer noch kaputt und wenn Sie yarn upgrade-iteractive
und nicht wissen, von welcher Version von tslint, codelyzer, typescript usw. diese Pakete abhängen, wie Angular oder die Angular CLI, können und werden Sie eine Reihe von Fehlern verursachen, die Sie verfolgen werden auch nachdem Sie alles zurückgerollt haben. Wurde dieses Problem erneut veröffentlicht?
@milesj NO. Ich bin hier und habe NUR upgrade-interactive
mit genau den gleichen Problemen verwendet.
Ich war mir nicht sicher, ob dies Zeit hat, da es seit Monaten geschlossen ist. Daher wurde eine neue Ausgabe erstellt - # 3266
@ fab1an Das ist unglücklich. Ich hatte keine Probleme damit, package.json zu aktualisieren: /
@ fab1an @milesj Ich hatte upgrade-interactive
, um package.json auch bei einem unserer Projekte nicht zu aktualisieren. Wenn Sie ein Upgrade durchführen und package.json nicht die richtige Nummer hat, aktualisieren alle interaktiven Upgrades package.json nicht ... oder so ... so oder so kann es Ihnen definitiv zustimmen, dass es manchmal nicht funktioniert.
Windows 10, Garn v0.23.4 aktualisiert die Datei package.json immer noch nicht, wenn yarn upgrade
Edit: Vielleicht ist das beabsichtigt?
Zum Beispiel: "semantic-ui-react": "^0.68.2"
- Es gibt bereits eine neue Version (0.68.3) und diese Version ist installiert und yarn.lock wird auf 0.68.3 geändert, jedoch aufgrund von ^
in der Version (> = 0.68.2 <0.69.0) Es ist nicht erforderlich, package.json auf ^0.68.3
zu aktualisieren.
@iamfreee Ich verwende Yarn v0.24.5 und yarn upgrade
aktualisiert package.json nicht, nur yarn.lock. Dies kann (oder sollte zumindest nicht) beabsichtigt sein, da bei der Versionierung in package.json zunächst die tatsächliche Version des Pakets festgelegt und dann die Upgrade-Einschränkungen festgelegt werden, dh ^
oder ~
. Zweitens ändert das Ausführen von yarn upgrade
für ein einzelnes Paket die Datei package.json. Warum unterscheidet sich das Verhalten beim Aktualisieren aller Pakete? Warum sollte es eine Diskrepanz im Verhalten zwischen yarn upgrade
und yarn upgrade-interactive
, was keinen Sinn ergibt?
Dieses Problem wurde für eine Weile geschlossen, so dass es offen gesagt keine Traktion bekommt. Wir sollten einfach eine neue Ausgabe eröffnen. Auch wenn dieses Verhalten beabsichtigt ist, bin ich damit nicht einverstanden. yarn upgrade
sollte nicht einmal auf das @ latest- Tag aktualisiert werden, denn was ist, wenn in Ihrer package.json eine andere Versionsbeschränkung aufgeführt ist? Siehe hier: https://docs.npmjs.com/cli/update#caret -dependencies
@leosco In meinem Fall hat npm update
auch package.json
nicht aktualisiert und auch yarn upgrade [package]
hat den Trick nicht gemacht. Aus diesem Grund denke ich, dass das Problem mit der Versionsbeschränkung ^
oder mit dem erwarteten Verhalten.
@iamfreee Nein, du musst npm update --save
was das Standardverhalten von Yarn sein soll.
Ich habe eine neue Ausgabe veröffentlicht, die dies alles ausführlich beschreibt. Siehe hier https://github.com/yarnpkg/yarn/issues/3492 und vielleicht die Diskussion dort fortsetzen.
Ich möchte auch wiederholen, dass ich mit yarn interactive-upgrade
Erfolg hatte, während yarn upgrade --latest
bei mir nicht funktioniert hat.
Verwenden von Garn v0.24.6 mit Knoten v7.10.0.
yarn upgrade --latest
funktioniert gut: +1:
~> yarn -v
1.0.0
~> yarn upgrade --help | grep "\-\-latest" | head -n 1
--latest list the latest version of packages, ignoring version ranges in package.json
yarn interactive-upgrade
scheint jetzt in Version 1 Probleme zu haben.
@milesj Kannst du die nächtlichen Builds ausprobieren? https://yarnpkg.com/de/docs/nightly Diese PR hat das Problem möglicherweise behoben. https://github.com/yarnpkg/yarn/commit/da2b9096057301273aa27336f70622dda09b6c33
@kaylieEB Ich bin nicht sicher, aber ich denke, yarn interactive-upgrade
verhält sich jetzt anders. Ich habe es gerade in einem Projekt mit vielen kleinen Upgrades ausgeführt, und package.json
wurde nicht geändert, nur yarn.lock
. Vor 1.0.2 hätte package.json
wahrscheinlich mit den aktualisierten Versionen synchronisiert, aber ich kann mich irren ... Der neueste nächtliche Build hat dieses Verhalten für mich nicht geändert.
yarn upgrade --latest
funktioniert jetzt einwandfrei, aber ich habe es vorgezogen, interaktiv auswählen zu können, was aktualisiert werden soll, und dann die package.json
anpassen zu lassen.
@lehni Es gibt auch yarn interactive-upgrade --latest
.
@milesj : yarn upgrade-interactive --latest
?
Dokumente: https://yarnpkg.com/de/docs/cli/upgrade-interactive
Äh ja, Hirnfurz. Vielen Dank.
Gleiches gilt hier für Garn 1.3.2
Gleiches gilt hier für Garn 1.5.1
Wieder in 1.5.1 gebrochen
gebrochen mit -
$ node --version
v9.0.0
$ yarn --version
1.5.1
gleiches Problem Knoten v8.9.4
Garn 1.5.1
Eine Problemumgehung: Verwenden Sie yarn add
anstelle von yarn upgrade
.
Zusamenfassend:
yarn upgrade
: Aktualisieren Sie Pakete auf den neuesten möglichen Bereich, der durch pacakge.json
, aber überschreiben Sie sie nichtyarn add
: Aktualisieren Sie Pakete auf den neuesten möglichen Bereich und schreiben Sie package.json
yarn update
, wie npm update
: existiert nichtDas Dokument von npm update sagt jedoch:
Ab [email protected] ändert das npm-Update package.json, um die neue Version als minimal erforderliche Abhängigkeit zu speichern. Verwenden Sie npm update --no-save, um das alte Verhalten zu erhalten.
Aber in der Tat...
y > npm -v
5.7.0
y > cat package.json
{
"dependencies": {
"lodash": "^4.17.5"
}
}
y > npm update lodash
npm WARN y No description
npm WARN y No repository field.
npm WARN y No license field.
+ [email protected]
added 1 package from 2 contributors in 1.004s
y > cat package.json
{
"dependencies": {
"lodash": "^4.17.5"
}
}
Ich weiß nicht, welches ich verwenden soll :( Yarn hat dieses Verhalten irgendwann im Jahr 2017 hinzugefügt und es dann stillschweigend gebrochen. Npm behauptet, es zu haben, wenn es auch nicht funktioniert.
@kittens Bitte öffnen Sie dieses Problem erneut.
Wie von @octref yarn upgrade
gesagt, werden die Abhängigkeiten auf die neueste Version aktualisiert, die package.json
jedoch nicht überschrieben. yarn add <package>
aktualisiert das Paket auf die neueste Version, wenn es bereits installiert ist und überschreibt package.json
. Gibt es einen Grund für yarn upgrade
, die package.json
nicht zu überschreiben? Wenn ja, dann kann das vielleicht als Flag zu yarn upgrade
hinzugefügt werden.
[email protected]
[email protected]
os: MacOS
Lesen Sie https://github.com/yarnpkg/yarn/issues/5602#issuecomment -377528617
Eine Problemumgehung: Verwenden Sie
yarn add
anstelle vonyarn upgrade
.
Klappt wunderbar. Diese beiden Docs-Seiten müssen aktualisiert werden, um yarn add
anstelle von yarn upgrade
.
Ich benutze yarn upgrade-interactive --latest
jetzt schon eine ganze Weile ohne Schluckauf ...
Ich benutze Garn Upgrade-Interactive - das Neueste seit einiger Zeit ohne Schluckauf ...
Scheint ein bisschen überflüssig zu sein. Warum nicht einfach den einfachsten aller dieser Befehle verwenden, yarn add
? Super einfach.
@ guylepage3, da ich sehen kann, welche Upgrades in welchen Versionen mit unterschiedlicher Farbcodierung verfügbar sind, basierend auf Änderungen der Patch- / Minor- / Major-Version, die zu aktualisierenden auswählen und auf diese Weise mehrere Upgrades gleichzeitig durchführen. Daran ist nichts überflüssig?
@lehni, dann sollte die Dokumentation auf der Website dies widerspiegeln und auf den folgenden beiden Seiten sollte angegeben werden, dass die Methode yarn upgrade-interactive --latest
verwendet werden soll.
@ guylepage3 Dieses Gespräch führt nirgendwo hin und hilft auch nicht. Wenn Sie die Aktualisierung von Dokumenten vorschlagen möchten, ist es möglicherweise besser, ein neues Problem speziell dafür zu erstellen.
Tut mir leid, wenn du so denkst @alexdevero. Und yep schon, wenn Sie oben schauen .. https://github.com/yarnpkg/yarn/issues/1458#ref -issue-332178362
Dies hat mir geholfen: https://www.npmjs.com/package/syncyarnlock
$ yarn upgrade-interactive && syncyarnlock
Dies funktioniert bei mir nicht für Garnarbeitsbereiche. Kann jemand einen Blick darauf werfen?
Hilfreichster Kommentar
Gleiches gilt hier für Garn 1.3.2