วิธีหลีกเลี่ยงการติดตั้งแพคเกจใน monorepo โดยใช้ Yarn


10

ฉันสร้าง monorepo ใช้Lernaและเส้นด้ายพื้นที่ทำงาน

ทุกอย่างทำงานได้ดี แต่ทุกครั้งที่ฉันติดตั้งการพึ่งพาใหม่บนแพ็คเกจ (เรียกเขาว่าA ) โดยใช้:

yarn add <package_name>

Yarn เพิ่มเข้าไปแล้วทริกเกอร์installสคริปต์ของแพ็คเกจทั้งหมดใน monorepo แม้แต่แพ็คเกจที่Aไม่ต้องพึ่งพา

มีอยู่แล้วเพื่อหลีกเลี่ยงปัญหานี้? ใช้เวลาสักครู่ในการติดตั้งโดยไม่มีเหตุผลเลย


ดังนั้นคุณใช้ทั้งแพคเกจ Lerna และไหม? ทำไมไม่ลอง Lerna ล่ะ? คุณลองเพิ่มแพ็กเกจด้วย Lerna แล้วตั้งขอบเขตหรือไม่? github.com/lerna/lerna/tree/master/commands/add
kbariotis

ฉันใช้ Lerna เพื่อเผยแพร่และจัดทำแพคเกจของฉันและพื้นที่ใช้งาน Yarn เพื่อจัดการการพึ่งพาได้ง่าย ฉันลองคำแนะนำของคุณแล้ว แต่ก็ไม่ได้ผล ขอบคุณที่ลองทำ :)
Erazihel

คำตอบ:


4

ลองเพิ่มในพื้นที่ทำงานเฉพาะด้วย: -

yarn workspace <workspace_name> add <package_name>

สำหรับเอกสารบางอย่างตรวจสอบที่นี่


ฉันไม่ต้องการติดตั้งการพึ่งพาพื้นที่ทำงานทั้งหมด แต่เพียงหนึ่งแพ็คเกจ
Erazihel

4

คุณสามารถลองเส้นด้าย 2 ในnodeLinker: node-modules .yarnrc.ymlYarn 2 รับประกันว่าจะให้ทริกเกอร์การสร้างใหม่บนแพ็คเกจที่เปลี่ยนแปลงการอ้างอิงเท่านั้นนี่เป็นสิ่งที่ไม่ได้รับประกันโดย Yarn 1 อย่างไรก็ตามจะยังมีกรณีที่หายากมากเมื่อแพ็กเกจที่ไม่เกี่ยวข้องดูเหมือนจะถูกสร้างขึ้นมาใหม่ แต่สิ่งนี้จะเกิดขึ้นน้อยมาก


ฉันลองคำแนะนำของคุณแล้ว แต่ดูเหมือนว่าน่าเสียดายที่ผลลัพธ์ยังคงเหมือนเดิม ... : /
Erazihel

4

การใช้ขอบเขตเพิ่มแพ็คเกจไปยังโมดูลเฉพาะ

lerna add some_package_1 --scope=some_module_x

เพิ่มเติม: https://github.com/lerna/lerna/tree/master/commands/add#readme


นั่นคือสิ่งที่ @kbariotis แนะนำในการแสดงความคิดเห็นกับคำถามของฉัน ฉันพยายามแล้วผลลัพธ์ก็ยังเหมือนเดิม
Erazihel

คุณสามารถอัปเดตหนึ่งใน package.json
xdeepakv

ฉันทำและอีกครั้งผลลัพธ์ยังคงเหมือนเดิม
Erazihel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.