機能をリクエストしバグを報告しますか?
バグ🐜😱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-hls
はaes-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に追加されたパッケージは次のとおりです。
期待される動作は何ですか?
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)
私は同じことに遭遇しました。 これは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
た。
最も参考になるコメント
ヤーンを介して
nightmare
をインストールするときにこれに遭遇しました-悪夢はelectron@^1.4.4
依存し、npmのbeta
dist-tagの下にある1.6.0
解決されます。 最新の最新バージョンは1.4.15
です。 私は無意識のうちに電子のベータ版に対してコードを書いたので、本番環境で実行するにはダウングレードする必要があります。私の回避策は、
package.json
で必要なelectron
のバージョンを個別に明示的に宣言することpackage.json
た。