Yarn: Yarnは、NPMのような最新の一致する安定版ではなく、一致する@ next /不安定なバージョンを使用します

作成日 2016年11月04日  ·  3コメント  ·  ソース: yarnpkg/yarn

機能をリクエストしバグを報告しますか?
バグ🐜😱Yarnは、同じバージョン指定子を持つNPMとは異なるバージョンを選択します。

現在の動作は何ですか?

  • パッケージaes-decrypterはnpmにあります: { latest: '1.0.3', beta: '1.0.0-0', next: '1.1.0' }
  • パッケージvideo.jsはnpmにあります: { latest: '5.11.9', next: '5.12.6', alpha: '5.9.0-2' }
  • パッケージvideojs-contrib-hlsaes-decrypter@^1.0.3'video.js@^5.10.1依存します
  • 私のパッケージはpackage.json videojs-contrib-hls@^3.6.7に依存しています:
{
  "name": "yarn-next-bug-test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "videojs-contrib-hls": "^3.6.7"
  }
}
  • ヤーンロックなし
  • yarn実行します

インストールされ、yarn.lockに追加されたパッケージは次のとおりです。

  • [email protected] (正解)
  • ビデオ。 [email protected] (不正解、5.11.9、最新の安定したマッチングバージョンである必要があります)
  • [email protected] (不正解、1.0.3、最新の安定したマッチングバージョンである必要があります)

期待される動作は何ですか?
NPMがこれと同じpackage.jsonで行うこと:

node.js、yarn、およびオペレーティングシステムのバージョンをお知らせください。
node.js v7.0.0
ヤーンv0.16.0とv0.19.0-0(マスターf0d875a67a06d8b2405be177d0c43820442d802b)の両方にバグがあります
npmv3.10.9とv4.0.2の両方が期待どおりの動作をします
macOS Sierra 10.12.2ベータ版(16C32f)

最も参考になるコメント

ヤーンを介してnightmareをインストールするときにこれに遭遇しました-悪夢はelectron@^1.4.4依存し、npmのbeta dist-tagの下にある1.6.0解決されます。 最新の最新バージョンは1.4.15です。 私は無意識のうちに電子のベータ版に対してコードを書いたので、本番環境で実行するにはダウングレードする必要があります。

私の回避策は、 package.jsonで必要なelectronのバージョンを個別に明示的に宣言することpackage.jsonた。

全てのコメント3件

私は同じことに遭遇しました。 これはNpmResolve#findVersionInRegistryResponseでうまくいかないようです。ここで、 rangeは一時的な依存関係のdist-tagsキーではなく、単にsemver範囲であり、 config.resolveConstraintは単に戻ります。最高のもの。
(災害が発生した良い例は、lernaのひどく壊れたカナリアリリースメカニズムです。これは、短いgit commitハッシュで終わるsemverプレリリースバージョンを生成します。実際のプログラマーは常にカウントダウンし、「f」から開始します。)

typscriptパッケージでもこの問題が発生しています。

npm view typescript 'dist-tags'
この出力を提供します:

{ latest: '2.0.10',
  next: '2.2.0-dev.20161129',
  beta: '2.0.0',
  rc: '2.1.1',
  insiders: '2.0.6-insiders.20161017' }

npm installすると、2.0.10バージョンがインストールされます
ヤーンを実行した後、yarn.lockにこのエントリがあります

typescript@^2.0.9:
  version "2.1.1"
  resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.1.1.tgz#41c2b64472f529331b2055c0424862b44ce58d42"

あなたは誰が間違っているのかを議論することができます。 糸はsemverに従い、私の場合は2.1.1である最新の有効なリリースを探すと思います。

Npmはdist-tagsからの情報を使用しているようで、typescriptはバージョン「2.1.1-rc」を使用する必要がありました。

ヤーンを介してnightmareをインストールするときにこれに遭遇しました-悪夢はelectron@^1.4.4依存し、npmのbeta dist-tagの下にある1.6.0解決されます。 最新の最新バージョンは1.4.15です。 私は無意識のうちに電子のベータ版に対してコードを書いたので、本番環境で実行するにはダウングレードする必要があります。

私の回避策は、 package.jsonで必要なelectronのバージョンを個別に明示的に宣言することpackage.jsonた。

このページは役に立ちましたか?
0 / 5 - 0 評価