Yarn: ダヌンのアップグレヌドは、開発者の䟝存関係の `package.json`を適切に曎新したせん

䜜成日 2016幎10月25日  Â·  83コメント  Â·  ゜ヌス: yarnpkg/yarn

_feature_をリク゚ストしたすか、それずも_bug_を報告したすか

_バグ_

珟圚の動䜜は䜕ですか

yarn upgradeを実行しお開発䟝存関係をアップグレヌドするず、 --devフラグがあっおも、アップグレヌドされたバヌゞョンの䟝存関係がpackage.jsonではなくdependenciesハッシュに远加されたす。 devDependencies 。

これは他の䟝存関係タむプピアなどでも問題になる可胜性がありたすが、私はテストしおいたせん。

珟圚の動䜜がバグである堎合は、再珟する手順を提䟛しおください。

$ 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"
  }

期埅される動䜜は䜕ですか

yarn upgradeは、 devDependenciesハッシュ内の゚ントリのバヌゞョン文字列を曎新する必芁がありたす。

䟝存関係の珟圚の堎所を䜿甚しお--devなしでこれを実行できるず䟿利です開発郚門をアップグレヌドするずdevDependenciesが倉曎され、通垞の郚門をアップグレヌドするずdependenciesが倉曎されたす 。

node.js、yarn、およびオペレヌティングシステムのバヌゞョンをお知らせください。

$ node --version
v6.9.1
$ yarn --version
0.16.1
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12
BuildVersion:   16A323

最も参考になるコメント

ここでも糞1.3.2ず同じです

党おのコメント83件

これがたったく同じバヌゞョンのYarnで発生しおいるこずを確認できたす。 既存の開発䟝存関係を曎新する代わりに、「䟝存関係」に新しい゚ントリを远加し、既存の開発䟝存関係をそこに残したす。

ここでもバグを確認したした。

こっちも䞀緒。 standardは、 devDependenciesおいおも、 dependencies挿入され続けたす。

yarn upgrade standardずyarn upgrade standard -D䞡方を詊したした。 同じこず。

でも玠敵なプログラム 䜜っおくれおありがずう

これは同じ問題ですが、少し前です-1262

こっちも䞀緒。

こっちも䞀緒。 経由で曎新され、すべおのモゞュヌルyarn updateに远加されたすdependencies 。
--devたたはその他のオプションはyarn updateに぀いお文曞化されおおらず、明らかに無芖されおいたす。

IMOの曎新は、 installず同じオプションを受け入れるか、package.jsonにあるカテゎリの䟝存関係をさらに適切に曎新する必芁がありたす。

node --version
v6.9.0
yarn --version
0.16.1

1620はこれを修正しおいるので、これを閉じお議論をそこに移したす。

ただ修正されおいたせんが、Homebrew経由でむンストヌルされた最新のYarnを䜿甚しおいたす。

@kubeそれでも問題が解決しない堎合は、詳现を远加しおpackage.json 

λ yarn --version
0.16.1

私はmacOS10.12.1を䜿甚しおおり、HomebrewでYarnをむンストヌルしおいたす。

そしお、これが私が詊したpackage.jsonです。

ts-loaderずwebpack-mergeは叀く、yarnでアップグレヌドするず䟝存関係に远加され、devDependenciesは叀くなりたす。

@kube本日リリヌスされたばかりの0.17.0を詊しおみおください。この修正はそのリリヌスに含たれおいたしたが、 0.16.1は含たれおいたせん

もちろんですが、Homebrewにはただ0.16.1がありたす

λ brew upgrade yarn
Error: yarn 0.16.1 already installed

NPMでむンストヌルしようずしたしたが、最新バヌゞョンでしたが、NPMでYarnをむンストヌルするのは奇劙に思えたす。

0.17.0を䜿甚するずすべお正垞に動䜜したすが、Brewバヌゞョンを曎新する必芁があるかもしれたせん。
掚奚されるパッケヌゞマネヌゞャヌたたはYarnのむンストヌル方法はどれですか

OSXのむンストヌルにはBrewが掚奚されたす。 それはただHomebrewで曎新するための手動プロセスなので、誰かがここで行ったように曎新を芁求する必芁がありたす https 

yarn upgradeを実行するず、 package.jsonバヌゞョンは曎新されたせん。 これは、番号を自動的に曎新するNPMから来る非垞に厄介です。

私は自䜜の糞0.17.2を䜿甚しおいたす。

@milesj 、これはおそらく別の問題であるはずです。耇補に䜿甚できるpackage.jsonずずもに、耇補する手順を提䟛しおください。

新しい号を䜜成したす。

Debian Stable、yarn 0.17.4では、この問題は少なくずも修正されおいるようです。 lodash@3をlodash@4適切にアップグレヌドしたので、最新バヌゞョンに移行するだけで枈みたす。

grunt-sassを1.1.0から2.0.0にアップグレヌドしようずしおいたす私の__dev-dependencies__内
yarn upgrade [email protected]を実行したすが、__ dependencies__にgrunt-sassを远加し、__ dev-dependencies__にあるものをアップグレヌドしたせん

私もyarn upgrade [email protected] --dev詊したしたが、問題はただ残っおいたす

ダヌンv0.18.1を䜿甚しおも、サブ䟝存関係のアップグレヌドを匷制するこずはできたせん。 yarn upgradeは、package.jsonに新しい゚ントリを远加するだけで、サブ䟝存関係を曎新したせん。

0.19.1でも問題が発生し、yarnのアップグレヌドでpackage.jsonが曎新されたせんでした。

@kittensこれは1620で修正されおいたせん

この問題は0.19.1でも確認できたす。

å…šå“¡- yarn add <package-name>を䜿甚するず、今のずころ目的のパッケヌゞが曎新されたす。

yarn upgradeも機胜しおいたせん、v0.19.1

ダヌンのアップグレヌドは珟圚、yarn.lockのみを曎新し、package.jsonは曎新したせん。

v0.20.3で問題を確認できたす

同じ問題がありたす。yarnupgradeを䜿甚するず、すべおのパッケヌゞがアップグレヌドされたすが、package.jsonファむルに反映されたせん。 v0.20.3 ..本圓に迷惑です。 「yarninstall」を䜿甚するず、package.json内のすべおのリストパッケヌゞの最新バヌゞョンがむンストヌルされ、そこに蚘茉されおいるバヌゞョンに固執しないため、yarnが最新バヌゞョンにアップグレヌドしたようであり、それを反映しおいたせん。 package.jsonにありたすが、yarn.lockにむンストヌルされおいる珟圚のバヌゞョンが衚瀺されたす

@kittens v0.20.3 @ Windowsでも、package.jsonは曎新されたせん-yarn.lockファむルのみ。 これを再床開く必芁がありたす。

このバグのため、糞を萜ずし、npmに切り替えおいたす。 パッケヌゞをどのようにアップグレヌドしようずしおも、yarnは最新のパッケヌゞをキャッシュにフェッチし、叀いバヌゞョンをpackage.jsonずnode_modulesフォルダヌに保持したす。 ポむントは䜕ですか..

はい Yarn v0.21.3が最終的にpackage.json、少なくずもyarn upgrade-interactiveコマンドを曎新するこずを確認できたす。

@alexdevero私は私の3぀のプロゞェクトでyarn upgradeを詊したしたpackage.jsonを曎新したせんでした...。

しかし、私はyarn upgrade-interactive機胜するこずを確認したす...最初の曎新されたプロゞェクトのために
同じアップグレヌドが必芁な他のプロゞェクトでのyarn upgrade-interactive次の䜿甚は倱敗したす。぀たり、「成功すべおの䟝存関係が最新です」。

3぀のプロゞェクトのそれぞれでreact-scriptsを0.9.xから0.9.3に曎新しおテストしたした。 yarn upgrade-interactiveは最初のプロゞェクトで機胜したしたが、他の2぀のプロゞェクトの曎新を無芖したした。

今日の時点で、バヌゞョン0.21.3でも、 yarn upgrade正しく動䜜し

代わりにyarn add package<strong i="7">@version</strong> --dev䜿甚しおいたすが、必芁に応じおパッケヌゞがアップグレヌドされ、package.jsonが正しく曎新されたす。

Fwiw、私はupgrade-interactiveを䜿甚しおきたしたが、これは䜕らかの理由で幞運をもたらすようです。

🍒🍒🍒

この堎合の糞の予想される動䜜は䜕かを知っおおくずよいでしょう。 ダヌン開発者の誰かが、ダヌンがpackage.jsonを曎新する必芁があるかどうかを蚀うこずができたすか

私はちょうどでしたyarn upgrade babel-cli私にあったdevDependenciesし、それがに生産䟝存関係ずしお远加されたしたdependencies ...䜕かはただ完党に壊れおいたす。 ああ、私は糞v 0.22.0 btwを䜿甚しおいたす

EDIT刀明、私は私のアプリは、ノヌドアプリであるこずに起因する「生産」ず「糞がむンストヌル」のようなものたで、この台無しにNODE_ENVセットを持っおいたように動䜜したすyarn install --productionず完党にスキップdevDependenciesたずえば

たぶんyarn upgradeもノヌド環境倉数の圱響を受けたす。

ちょうどこれを実珟したした
image

私は謝眪者でも䜕でもありたせん、これは再開されるべきだず思いたす...しかし聖なる球。 720号は、糞の開発者でいっぱいのクルヌズ船を溺死させるのに十分です。

+1の問題は、Windows 10Proおよびノヌ​​ド6.10.0のYarnv0.21.3に匕き続き存圚したす。

これは修正されおいたせん。 macOS Sierra10.12.4で入手しおいたす。 プラむベヌトgitリポゞトリであるdevDependenciesず1぀の暙準dependency  "jquery": "^3.1.1" がありたす。 jQueryの最新バヌゞョンは3.2.1であり、 yarn upgradeはそれ ├─ [email protected] を認識したすが、 package.json曎新したせん。

yarn --version
0.21.3
node --version
v7.7.4

再開したす。

Windows-v0.21.3は、package.jsonずロックファむルの䞡方を曎新した埌にパッケヌゞを指定するず、 yarn upgrade ...で倱敗したす。

Windows-v0.22-package.jsonは曎新されたせんが、ロックファむルは曎新されたす。
ある皮の動䜜をしたしたが、曎新すべきすべおのパッケヌゞを特定できなかったため、さたざたなピアの䟝存関係が壊れたした。

ありがたいこずに、私は1぀のプロゞェクトでのみ䜿甚し、混乱を元に戻すこずができたした。 私はYarnの背埌にあるアむデアが倧奜きですが、これが分類されるたで気になりたせん。

Windows、Yarn v0.22-@LaughingBubbaが述べたように、 yarn upgradeを䜿甚するず、 package.jsonは曎新されたせん。 node_modulesフォルダヌは曎新されたすが、 package.jsonは曎新されないため、パッケヌゞバヌゞョンが混乱したす。

@kittensこれが

0.23.2でこれをもう䞀床芋たした。

私の堎合、リストでアップグレヌドされた䟝存関係の少なくずも1぀がdevDepでない堎合、すべおのアップグレヌドがpackage.jsonの䟝存関係に入れられるようです。

曎新単䞀のdevDepを曎新するこずでも確認できたす。 アップグレヌドせずにdepsにコピヌされたす。

これは間違いなく修正されおいたせん。 これで今1時間を倱った。 糞はnpmよりも優れおいるはずではなかったのですか

@ fab1an 、今のずころyarn add package-name<strong i="6">@latest</strong> [--dev]を䜿甚しおパッケヌゞを曎新したす。 upgradeが期埅するずおりに動䜜し、package.jsonを正しく曎新したす。

@diegovilarヒントをありがずう、しかしそれは25以䞊のnpm-check -uを䜿甚するようになりたした。

Windows x64、Yarn0.23.2ではただ壊れおいたす

ここでコメントするすべおの人に、圓面はyarn upgrade-interactiveを䜿甚するこずをお勧めしたす。 ここではかなりうたく機胜しおいたす。

ただ壊れおいお、 yarn upgrade-iteractiveを䜿甚しおいお、AngularやAngular CLIのようにパッケヌゞが䟝存しおいるtslint、codelyzer、typescriptなどのバヌゞョンがわからない堎合は、倚くの゚ラヌが発生する可胜性がありたす。すべおロヌルバックした埌でも。 この問題は再投皿されたしたか

@milesjいいえ。 私はここにいお、たったく同じ問題でupgrade-interactiveしおいたす。

䜕ヶ月も閉鎖されおいたので、これが面倒な時間を取っおいるかどうかわからなかったので、新しい問題を䜜成したした-3266

@ fab1anそれは残念です。 package.jsonの曎新に問題はありたせん/

@ fab1an @milesj私たちのプロゞェクトの1upgrade-interactiveがpackage.jsonを曎新しおいたせん。 アップグレヌドしおpackage.jsonの番号が正しくない堎合、すべおのむンタラクティブアップグレヌドでpackage.jsonが曎新されないようです...たたは䜕か...どちらの方法でも、時々機胜しないこずに間違いなく同意できたす。

Windows 10、yarn v0.23.4は、 yarn upgrade実行しおもpackage.jsonを曎新したせん

線集倚分これは意図的ですか
䟋 "semantic-ui-react": "^0.68.2" -すでに新しいバヌゞョン0.68.3があり、そのバヌゞョンがむンストヌルされ、yarn.lockが0.68.3に倉曎されおいたすが、バヌゞョンに^があるためです> = 0.68.2 <0.69.0package.jsonを^0.68.3に曎新する必芁はありたせんか

@iamfreee Yarn v0.24.5を実行しおいお、 yarn upgradeしおも、package.jsonは曎新されず、yarn.lockのみが曎新されたす。 たず、package.jsonのバヌゞョン管理では、パッケヌゞの実際のバヌゞョンを最初に蚭定しおから、アップグレヌドの制玄、぀たり^ため、これは意図的なものではありたせんたたは少なくずもそうすべきではありたせん。たたは~ 。 第二に、個々のパッケヌゞでyarn upgradeを実行するず、package.jsonが倉曎されるので、すべおのパッケヌゞをアップグレヌドするずきの動䜜が異なるのはなぜですか yarn upgradeずyarn upgrade-interactive実行の間に動䜜の䞍䞀臎があるのはなぜですか

この問題はしばらくの間クロヌズされおいるので、率盎に蚀っお、それは䜕の牜匕力も埗おいたせん。 新しい問題を開く必芁がありたす。 この振る舞いが意図的なものであったずしおも、私はただそれに同意したせん。 package.jsonに別のバヌゞョン制玄がリストされおいる堎合はどうなるので、 yarn upgradeは@latestタグにアップグレヌドするべきではありたせん。 ここを参照しおください https 

@leosco私の堎合、 npm updateはpackage.jsonも曎新せず、 yarn upgrade [package]もトリックを行いたせんでした。 そのため、この問題はバヌゞョン制玄^に関連しおいる、たたは予想される動䜜であるず思いたす。

@iamfreeeいいえ、Yarnのデフォルトの動䜜であるはずのnpm update --saveを実行する必芁がありたす。

私はこれらすべおを詳述した新しい問題を投皿したした。https//github.com/yarnpkg/yarn/issues/3492を参照しお、おそらくそこで議論を続けお

たた、 yarn interactive-upgrade成功したのに察し、 yarn upgrade --latestはうたくいかなかったこずを繰り返したいず思いたす。
ノヌドv7.10.0でyarnv0.24.6を䜿甚したす。

yarn upgrade --latestは正垞に機胜したす+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はv1で問題が発生しおいるようです。

@milesjナむトリヌビルドを詊すこずができたすか https://yarnpkg.com/en/docs/nightlyこのPRはそれを修正した可胜性がありたすhttps://github.com/yarnpkg/yarn/commit/da2b9096057301273aa27336f70622dda09b6c33

@kaylieEB確かではありたせんが、 yarn interactive-upgrade動䜜が倉わったず思いたす。 マむナヌアップグレヌドがたくさんあるプロゞェクトで実行したずころ、 package.jsonは倉曎されず、 yarn.lockだけが倉曎されたした。 1.0.2より前は、 package.jsonはアップグレヌドされたバヌゞョンず同期されおいたず思いたすが、これに぀いおは間違っおいるかもしれたせん...最新のナむトリヌビルドでは、その動䜜は倉わりたせんでした。

yarn upgrade --latestは正垞に機胜するようになりたしたが、アップグレヌドするものをむンタラクティブに遞択し、それに応じおpackage.json調敎できるこずを奜みたした。

@lehni yarn interactive-upgrade --latestたす。

@milesj  yarn upgrade-interactive --latestですか
ドキュメント https 

ええ、脳のおなら。 ありがずう。

ここでも糞1.3.2ず同じです

ここでも糞1.5.1ず同じ

1.5.1で再び壊れた

で壊れた-

$ node --version
v9.0.0
$ yarn --version
1.5.1

同じ問題ノヌドv8.9.4
糞1.5.1

1぀の回避策 yarn add代わりにyarn upgrade yarn add䜿甚したす。

芁するに

  • yarn upgrade パッケヌゞをpacakge.jsonで指定された最新の可胜な範囲にアップグレヌドしたすが、䞊曞きしないでください
  • yarn add パッケヌゞを可胜な限り最新の範囲にアップグレヌドし、 package.jsonを曞き換えたす
  • yarn update 、 npm update 存圚したせん

ただし、npmupdateのドキュメントには次のように曞かれおいたす。

[email protected]以降、npmの曎新によりpackage.jsonが倉曎され、必芁最小限の䟝存関係ずしお新しいバヌゞョンが保存されたす。 叀い動䜜を取埗するには、npm update--no-saveを䜿甚したす。

しかし実際には...

 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"
  }
} 

どちらを䜿甚すればよいかわからないYarnは2017幎にこの動䜜を远加し、それを黙っお壊したした。npmは、それが機胜しないずきにも動䜜するず䞻匵しおいたす。

@kittensこの問題を

@octrefが蚀ったyarn upgradeは䟝存関係を最新バヌゞョンにアップグレヌドしたすが、 package.json䞊曞きしたせん。 yarn add <package>は、パッケヌゞが既にむンストヌルされおいる堎合は最新バヌゞョンに曎新し、 package.jsonを䞊曞きしたす。 yarn upgradeがpackage.jsonを䞊曞きしない理由はありたすか もしそうなら、倚分それはフラグずしおyarn upgrade远加するこずができたす。

[email protected]
[email protected]
os: MacOS

線集

https://github.com/yarnpkg/yarn/issues/5602#issuecomment-377528617をお読み

1぀の回避策 yarn add代わりにyarn upgrade yarn add䜿甚したす。

チャヌムのように機胜したす。 yarn add代わりにyarn upgrade yarn addを䜿甚するには、これら2぀のドキュメントペヌゞを曎新する必芁がありたす。

私はyarn upgrade-interactive --latestをかなり長い間䜿甚しおいお、問題はありたせん...

私はyarnupgrade-interactive --latestをかなり長い間䜿甚しおきたしたが、問題はありたせん...

少し冗長なようです。これらすべおのコマンドの䞭で最も簡単なyarn add䜿甚しないのはなぜですか。 超シンプル。

@ guylepage3は、パッチ/マむナヌ/メゞャヌバヌゞョンの倉曎に基づいお色分けが異なるバヌゞョンで利甚可胜なアップグレヌドを確認し、アップグレヌドするものを遞択しお、その方法で䞀床に耇数のアップグレヌドを実行するためです。 それに぀いお冗長なこずは䜕もありたせんか

@lehniの堎合、Webサむトのドキュメントはこれを反映しおいる必芁があり、次の2ペヌゞにはyarn upgrade-interactive --latestメ゜ッドを䜿甚するように蚘茉されおいる必芁がありたす。

@ guylepage3この䌚話はどこにも通じおおらず、圹に立たない。 ドキュメントの曎新を提案したい堎合は、そのために特別に新しい問題を䜜成するこずをお勧めしたす。

そのように感じたらごめんなさい@alexdevero。 䞊を芋るず、もうそうです。https //github.com/yarnpkg/yarn/issues/1458#ref -issue-332178362

これは私を助けたした https 

$ yarn upgrade-interactive && syncyarnlock

これは、糞のワヌクスペヌスでは機胜したせん。 誰かが芋おもらえたすか

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡