بسیاری از مشکلهایی که در Monorepo وجود داشتند را برطرف کرده است. برای مثال اگر چندین پکیج را در یک ریپازیتوری نگهداری میکنید و آنها دارای فایلهای package.json جداگانه هستند، میتوانید تمام packageها را بهراحتی با yarn بهروزرسانی کنید. همچنین به لطف مفهوم workspaces میتوانید وابستگیهای تمام پکیجها را بهسادگی در یک ریپازیتوری نصب کنید. برخلاف این قابلیت yarn، در npm میبایستی دستور npm install را در تمامی مسیرهای پکیجها اجرا کنید.
yarn از یک lock file با نام yarn.lock استفاده میکند، بنابراین پروژههای شما برای دیگر افراد تیم بهدرستی کار خواهد کرد. از این مفهوم با عنوان الگوریتم deterministic install نیز یاد میشود.
در هنگامی که شبکهی شما با خطای failure روبرو باشد، yarn قادر است تا درخواستهای HTTP جدیدی ارسال کند و این قابلیت در زمانی که با مشکلهای موقت اینترنت روبرو هستید بسیار مفید است.
yarn از مکانسیم offline cache استفاده میکند به این معنی که با اولین نصب یک پکیج، فایلهای آن پکیج توسط yarn به پوشهای مخصوص فایلهای cache شده در مسیر ~/.yarn-cache اضافه میشوند. بنابراین دفعهی دیگری که میخواهید این پکیج را نصب کنید، بهجای ایجاد درخواست HTTP از فایلهای cache شده استفاده میشود. این پشرفت کوچک باعث تحول قابل توجهی در عملکرد yarn نسبت به npm شده است.
این ابزار دارای یک بررسی کنندهی مجوز داخلی است که در سناریوهای مختلف توسعهی برنامه نیز میتواند مفید باشد.
yarn برخلاف npm از بارگیری موازی استفاده میکند که نتیجهی آن فرایند build سریعتر پکیجها است.