Yarn: Benang menggunakan pencocokan @next / versi tidak stabil alih-alih stabil pencocokan terbaru seperti NPM

Dibuat pada 4 Nov 2016  ·  3Komentar  ·  Sumber: yarnpkg/yarn

Apakah Anda ingin meminta fitur atau melaporkan bug ?
Bug Yarn memilih versi yang berbeda dari NPM dengan penentu versi yang sama.

Apa perilaku saat ini?

  • Paket aes-decrypter ada di npm: { latest: '1.0.3', beta: '1.0.0-0', next: '1.1.0' }
  • Paket video.js ada di npm: { latest: '5.11.9', next: '5.12.6', alpha: '5.9.0-2' }
  • Paket videojs-contrib-hls tergantung pada aes-decrypter@^1.0.3' dan video.js@^5.10.1
  • Paket saya tergantung pada videojs-contrib-hls@^3.6.7 di package.json :
{
  "name": "yarn-next-bug-test",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "videojs-contrib-hls": "^3.6.7"
  }
}
  • Tidak ada benang.lock
  • Jalankan yarn

Paket-paket yang diinstal dan ditambahkan ke yarn.lock adalah:

Apa perilaku yang diharapkan?
Apa yang dilakukan NPM dengan package.json yang sama ini:

Sebutkan versi node.js, benang, dan sistem operasi Anda.
node.js v7.0.0
baik benang v0.16.0 dan v0.19.0-0 (master di f0d875a67a06d8b2405be177d0c43820442d802b) memiliki bug
baik npm v3.10.9 dan v4.0.2 melakukan hal yang diharapkan
macOS Sierra 10.12.2 Beta (16C32f)

Komentar yang paling membantu

Menemukan ini ketika menginstal nightmare melalui benang - mimpi buruk tergantung pada electron@^1.4.4 yang diselesaikan menjadi 1.6.0 yang berada di bawah tag dist beta pada npm. Versi terbaru tertinggi adalah 1.4.15 . Saya tanpa sadar menulis kode terhadap elektron versi beta, sekarang perlu menurunkan versinya untuk berjalan pada produksi.

Solusi saya adalah secara eksplisit mendeklarasikan versi electron yang saya inginkan di package.json secara terpisah.

Semua 3 komentar

Saya mengalami hal yang sama. Ini tampaknya salah dalam NpmResolve#findVersionInRegistryResponse , di mana range tidak pernah menjadi kunci dist-tags untuk dependensi transitif tetapi hanya rentang semver, dan config.resolveConstraint kemudian cukup kembali yang tertinggi.
(Contoh yang baik dari bencana yang mencolok adalah mekanisme rilis canary yang rusak parah dari lerna, yang menghasilkan versi pra-rilis semver yang diakhiri dengan hash git commit pendek. Saya kira programmer sejati selalu menghitung mundur, dan mulai dari 'f'.)

Saya juga mengalami masalah ini dengan paket typscript.

Menjalankan npm view typescript 'dist-tags'
Memberikan output ini:

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

Menjalankan npm install menginstal versi 2.0.10
Setelah menjalankan yarn saya memiliki entri ini di yarn.lock

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

Anda bisa berdebat siapa yang melakukan kesalahan. Saya pikir benang mengikuti semver dan mencari rilis valid terbaru yang dalam kasus saya adalah 2.1.1.

Npm tampaknya menggunakan info dari dist-tag dan TypeScript seharusnya menggunakan versi "2.1.1-rc".

Menemukan ini ketika menginstal nightmare melalui benang - mimpi buruk tergantung pada electron@^1.4.4 yang diselesaikan menjadi 1.6.0 yang berada di bawah tag dist beta pada npm. Versi terbaru tertinggi adalah 1.4.15 . Saya tanpa sadar menulis kode terhadap elektron versi beta, sekarang perlu menurunkan versinya untuk berjalan pada produksi.

Solusi saya adalah secara eksplisit mendeklarasikan versi electron yang saya inginkan di package.json secara terpisah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat