السلام عليكم
بالامس اعلنت فيس بوك بالتعاون مع جوجل عن مدير حزم Package Manager جديد يدعى Yarn
فماهو وماذا اضاف وهل نحن في حاجة الى الاستغناء عن npm(Node Package Manager)
سنتعرف على هذا سوياً
في البداية Yarn ليس شئ جديد كلياً بل هو التطوير الطبيعي لل npm يسير على نفس النمط في تثبيت ال Packages وملف package.json
بدون npm لن يكون هناك Yarn
فهو مبني عليه والجديد فيه انه اصلح بعض المشاكل والاخطاء وسهل بعض الامور التي كنا نشكو منها سابقاً
- – لا يوجد مثبت حزم Offline
في npm عندما كنا نريد تحميل حزمة ما فانه يقوم بتحميلها مباشرة من المصدر الى المجلد الذي نريده , وفي حال قمنا بتكرار العملية في مكان مختلف سيقوم بعمل نفس الشئ تحميل الملف من المصدر واضافته للمجلد
الجديد في Yarn هنا انه اصبح يخزن الPackages التي تريدها فبدلاً من الانتظار واعادة التحميل كل مرة هو سيحملها مرة واحدة وفي كل مرة تطلبها سيضيفها بدون الاتصال بالانترنت او التحميل لانه سجلها عنده
رائع اليس كذلك 😀
- – الكثير من الوقت في npm تم تخفيضه في Yarn
غالباً مانواجه صعوبة في طول وقت تحديث او اضافة حزمة Package جديدةللمشروع الخاص بنا , في Yarn تم تخفيض الوقت ليصبح اقل بكثير
- – الاعتمادية
npm كان يعتمد على الpackages الموجودة في npmjs.org فقط
بينما yarn يعمل على كلا الجهتين npm و bower
- – وأخيراً : فشل تثبيت الحزم
عند فشل تثبيت Package ما في مجموعة من ال Packages سيؤدي الى توقف وفشل التثبيت
Yarn سيكمل العملية ويحاول اعادة طلب تثبيت ال Package .
تحدثنا كثيراً عن المميزات والاصلاحات , دعونا نجرب كيف نثبته وماهي اوامره وكيف يعمل
يمكنك تحميل تثبيت Yarn من هنا
او يمكنك استخدام الامر
npm install yarn -g
للبدء في مشروع جديد داخل الـ Folder نكتب
yarn init
نحن في حاجة لتثبيت حزم لاستخدامها ولذلك نستخدم
yarn add PackageName yarn add PackageName --dev
وهو سيقوم بتحميلها واضافتها لـ package.json بدون flag –save
نقوم بكتابة -dev في حال ال Package في وضع التطوير فقط
في حال الحاجة لتحديث Package ما
yarn upgrade PackageName
وفي حالة تريد ان تحذف Package ما
yarn remove PackageName
لتثبيت Package كـ global
yarn global add PackageName
كما يمكن ايضاً تحديث yarn نفسها عن طريق امر
yarn self-update
ملاحظة
في حالة كان لديك ملف package.json وتريد تنصيب كل الـPackages التي فيه نكتب امر yarn install او yarn فقط .
الخلاصة: Yarn ليست بديلاً كليا لـ npm وانما هي تطوير وتحسين له , لتحسين اداءه وسرعته.