Cara menghindari menginstal paket di monorepo menggunakan Benang

10

Saya membangun monorepo menggunakan ruang kerja Lerna dan Benang .

Semuanya berfungsi dengan baik tetapi setiap kali saya menginstal dependensi baru pada sebuah paket (sebut saja dia A ) menggunakan:

yarn add <package_name>

Yarn menambahkannya dan kemudian memicu installskrip semua paket di monorepo, bahkan paket-paket yang tidak diandalkan oleh A.

Apakah ada di sana untuk menghindari ini? Butuh beberapa saat untuk menginstalnya tanpa alasan sama sekali.

Erazihel
sumber
Jadi Anda menggunakan paket Lerna dan Benang? Kenapa tidak hanya Lerna? Juga, sudahkah Anda mencoba menambahkan paket dengan Lerna dan menetapkan cakupan? github.com/lerna/lerna/tree/master/commands/add
kbariotis
Saya menggunakan Lerna untuk mempublikasikan dan versi paket saya dan ruang kerja Benang untuk mengelola dependensi dengan mudah. Saya mencoba saran Anda dan itu tidak berhasil. Terima kasih telah mencoba :)
Erazihel

Jawaban:

4

Coba tambahkan ke ruang kerja tertentu dengan: -

yarn workspace <workspace_name> add <package_name>

Untuk beberapa dokumen periksa di sini

Ezrqn Kemboi
sumber
Saya tidak ingin menginstal dependensi ke seluruh ruang kerja tetapi hanya untuk satu paket
Erazihel
4

Anda dapat mencoba Benang 2 dengan nodeLinker: node-modulesdi .yarnrc.yml. Benang 2 menjamin untuk memicu pembangunan kembali hanya pada paket-paket yang ketergantungannya berubah, ini adalah sesuatu yang tidak dijamin oleh Benang 1. Namun, masih akan ada kasus yang sangat jarang terjadi ketika paket-paket yang tampaknya tidak terkait dibangun kembali jika mereka diangkat secara berbeda setelah menambahkan paket baru , tetapi ini akan terjadi sangat jarang.

Viktor Vlasenko
sumber
Saya mencoba saran Anda tetapi tampaknya hasilnya sayangnya masih sama ...: /
Erazihel
4

Menggunakan lingkup, tambahkan paket ke modul tertentu.

lerna add some_package_1 --scope=some_module_x

Lebih lanjut: https://github.com/lerna/lerna/tree/master/commands/add#readme

xdeepakv
sumber
Itulah yang disarankan @kbariotis dalam komentar untuk pertanyaan saya. Saya mencoba dan hasilnya masih sama.
Erazihel
dapatkah Anda memperbarui salah satu dari package.json
xdeepakv
Saya lakukan dan sekali lagi hasilnya masih sama
Erazihel