چه چیزی باعث میشه ما بیایم از Yarn به جای npm استفاده کنیم؟
چه مزیت یا برتری ای نسبت به هم دارند؟
باید بگم npm یکی از پر استفاده ترین پکیج منیجر هایی است که تا الان وجود داشته. از کی؟ از سال 2010 تا الان. حالا چی میشه که بعد چند سال که npm داشته کار خودش رو انجام میداده یهو سر و کله yarn پیدا میشه؟ آیا میخواسته جای npm رو بگیره یا قراره که بگیره؟
قضیه از این قراره که دولوپرای فیس بوک داشتن روی یک سری از مشکلات npm کار می کردند که کار خودشو راه بندازن و بهینه تر کار بکنن، بعد از یه مدت دیدن که یه محصول جدید به وجود اوردن که میتونه جایگزین npm بشه. این شد که تو سال 2016 یارن رو عرضه کردند و گفتن از این به بعد میتونین در کنار npm از یارن هم استفاده کنین.
اینجا میخوام 5 تا از مواردی رو که ممکنه بخواطر اون ها بخواین از yarn به جای npm استفاده کنین رو بگم:
هر پکیجی که شما با توسط یارن یا npm نصب میکنین روی سیستم شما کَش میشه، حالا اگه از yarn استفاده کنین طبق مستندات خود yarn اون چیزی که کَش شده کاملا قابل اعتماده، به این معنی که در نصب مجدد اون پکیج yarn میاد از اون چیزی که کَش شده استفاده میکنه ولی کَش npm مورد اعتماد نیست و بعد از مدت کوتاهی اون رو پاک میکنه .
نتیجه: نصب پکیج توسط yarn برای بار دوم و چندم به مراتب سریع تر از npm بوده و حتی امکان نصب اون پکیج به صورت افلاین هم وجود داره.
یارن تمام پکیج ها رو به صورت موازی و باهم دیگه نصب میکنه ولی npm به صورت دونه دونه و سری اینکار رو انجام میده.
نتیجه: سرعت دانلود و نصب پکیج ها توسط یارن بیشتره
یارن اگه موقع نصب یک پکیج به مشکل بخوره به دلیل قطعی اینترنت یا کانکشن یا هر مورد دیگه، میاد آدرس های mirror جایگزین رو تست میکنه یا اینکه عملیات نصب رو هی تکرار میکنه تا بالاخره پکیج مورد نظر رو نصب کنه. ولی npm توی این شرایط عملیت رو خاطمه میده و پیغام خطا نشان میده.
نتیجه: یارن میتونه یک کقدار مورد اعتماد تر باشه نسبت به npm
هنگام نصب یک پکیج، npm به صورت پیشفرض میره سراغ npm registery و اگر پکیج مورد نظر اونجا قرار نداشته باشه پیغام خطا میده. ولی yarn علاوه بر npm میاد رجیستری bower رو هم چک میکنه و حتی اگه روی کانفیگ یارن یک رجیستری ثانویه رو هم ثبت کرده باشید در نهایت اون رو هم چک میکنه و حتی یک رجیستری افلاین روی دستگاه خودتون رو هم می تونین ثبت کنین
نتیجه: یارن به هنگام نصب پکیج ها نسبت به npm هوشمندانه تر عمل میکنه
یارن به شما این امکان رو میده تا برای پروژه هایی که به هم مرتبط هستند و depandancy های مشترک باهم دارند یک workspace تعریف کنین و اینطوری دیگه نیاز نیست پکیج های مشترک رو هر بار بیان داخل تک تک پروژه ها اضافه کنین، میتونین فقط یکبار داخل پوشه workspace نصبشون کنین که این فیچر به شدت مدیریت فایل ها و وابستگی ها رو راحت میکنه
ممنون که تا اینجا مطالعه کردین
اگر دوست داشتین منو تو ایستاگرام دنبال کنین