Resolusi ketergantungan selektif

Yarn mendukung resolusi versi selektif, yang memungkinkan Anda menentukan versi paket kustom di dalam dependensi Anda melalui kolom ` resolution </ code> di file package.json </ code> Anda . Biasanya, ini memerlukan suntingan manual di file yarn.lock </ code> .</p>

Mengapa Anda ingin melakukan ini?

  • Anda mungkin bergantung pada paket yang tidak sering diperbarui, yang bergantung pada paket lain yang mendapat upgrade penting. Dalam kasus ini, jika rentang versi yang ditentukan oleh ketergantungan langsung Anda tidak mencakup versi sub-ketergantungan yang baru, Anda terjebak menunggu penulisnya.

  • Sub-ketergantungan proyek Anda mendapat pembaruan keamanan penting dan Anda tidak ingin menunggu ketergantungan langsung Anda untuk mengeluarkan pembaruan versi minimum.

  • Anda mengandalkan paket kerja yang tidak terawat dan salah satu dependensinya ditingkatkan. Anda tahu ugprade tidak akan merusak barang dan Anda juga tidak ingin membayar paket yang Anda andalkan, hanya untuk memperbarui ketergantungan kecil.

  • Ketergantungan Anda mendefinisikan rentang versi yang luas dan sub-dependensi Anda baru saja mengalami pembaruan bermasalah sehingga Anda ingin memasukkannya ke versi sebelumnya.

Bagaimana cara menggunakannya?

Tambahkan bidang resolusi </ code> ke file package.json </ code> dan tetapkan penggantian versi Anda:</p>

paket.json

{
   "nama": "proyek",
   "versi": "1.0.0",
   "dependensi": {
     "pad kiri": "1.0.0",
     "c": "file: ../ c-1" ,
     "d2": "file: ../ d2-1"
   },
   "resolusi": {
     "d2 / left-pad": "1.1.1",
     "c / ** / left-pad": "1.1. 2 "
   }}
`</pre> 

Kemudian jalankan  yarn install </ code> .</p>

Tips & amp; Trik

  • Anda akan menerima peringatan jika Anda menentukan resolusi yang tidak benar (seperti dengan nama paket yang tidak valid)
  • Anda akan menerima peringatan jika versi resolusi atau rentang Anda tidak valid.
  • Anda akan menerima peringatan jika versi resolusi atau jangkauan Anda tidak kompatibel dengan kisaran versi aslinya.

Keterbatasan & amp; Peringatan

  • Paket bersarang mungkin tidak bekerja dengan baik.
  • Kasus tepi tertentu mungkin tidak bekerja dengan baik karena ini adalah fitur yang cukup baru.