الغزل 2 - مع برولوج والمكونات الإضافية
صدر الغزل - مدير الحزم للعقدة - الإصدار الثاني . ويبدو أن اللاعبين شرعوا بجدية في تغيير الوضع الراهن في النظام البيئي للعقدة ، وحتى بشكل عام في مديري الحزم. حذف جميع الصور حول node_modules ممرضة جيجابايت ، وإزالة yarn install
من البرامج النصية CI ، نبدأ الارتباك جافا سكريبت أخرى كبيرة. بالمختصر:- أصبح وضع Plug'n'Play افتراضيًا ، وأصبحت وحدات node_modules ثانوية من خلال المكون الإضافي.
- لقد صنعنا مكونًا إضافيًا وسير عمل من أجل monorep - ربما لن تكون هناك حاجة إلى lerna.
- لقد قاموا ببناء غلافهم الصغير بحيث يمكن تشغيل البرامج النصية للحزمة بدون تلك المتداخلات في Windows.
- تمت إضافة مقدمة للتحقق من القواعد بين مساحات العمل.
- تغسل npx مرة أخرى إلى أسفل.
إذا كنت لا ترغب في تحديث جميع مشاريعك ، فقم فقط بتشغيل yarn policies set-version ^1
(انظر legacy.yarnpkg.com/en/docs/cli/policies ) في المستودعات التي يجب أن تظل على Yarn 1 وارتكب النتيجة. ثم سيستخدم Yarn ثنائيات Yarn 1 المحلية بدلاً من الثنائيات العالمية ، لذلك سيستخدم الجميع في الفريق نفس الإصدار!
بشكل عام ، يمكن تتبع اتجاهين للتطوير: أ) الحد الأقصى من استنساخ البيئة و ب) التحرك نحو منصة لإدارة الحزمة.فيما يتعلق بالنقطة الأولى ، كان الغزل دائمًا يقود - في الواقع ، كان هذا هو سبب ظهوره مرة واحدة ، والضغط على الفور على npm (تذكر ، ثم تشغيل npm يمكن أن يعطي نتائج مختلفة ، لأن ملف القفل في عالم العقدة هو ميزة الغزل) . على الرغم من أنني تحولت إليه شخصيًا بسبب الخط الغاضب في سجلات npm .لكنهم قرروا الآن ، إذا جاز التعبير ، الدفع إلى أقصى حد. عند إضافة حزمة ، تتم إضافتها (وجميع تبعياتها) ، في شكل أرشيف مضغوط ، إلى ذاكرة التخزين المؤقت ، في مجلد .yarn في مجلد الحزمة (مثل .git). بدلاً من node_modules ، يتم إنشاء ملف .pnp.js ، والذي يعالج عمليات استيراد الوحدة النمطية. هناك نتيجتان مهمتان:- يمكنك إضافة ذاكرة التخزين المؤقت هذه مباشرةً إلى git - وبعد ذلك بعد الخروج ، ستحصل على الفور على الإصدار الحالي من التطبيق مع جميع التبعيات.
- يعمل رابط الغزل بشكل أفضل - الآن تتم معالجة تبعيات الأقران بشكل صحيح أيضًا
أما بالنسبة للمنصة ، فقد تحول الرجال إلى بنية البرنامج المساعد (أي الغزل بشكل أساسي كواجهة برمجة تطبيقات ، ثم فيما بعد CLI) وذكروا أنهم يريدون التخلص من العقدة نفسها ، مما يجعل الغزل حلاً عامًا لبناء مديري الحزم الخاصة بك .تبدو مثيرة للاهتمام وطموحة ومتغطرسة قليلاً. دعونا نرى ما إذا كان بإمكانهم التأقلم أو التوقف بالفعل في المرحلة الأولى من PnP.على أي حال ، سأحاول نقل مشروعنا إلى الغزل 2 ، إذا نجح - سيكون لطيفًا. كيف حالك؟UPD: حول المقدمة في العنوان ليس مزحة ، سيكون من الممكن كتابة قواعد التحقق من مساحات العمل عليها ، next.yarnpkg.com/features/constictionsNext - مقتطف من الإعلان الرسمي .الأكثر أهمية
تمت إعادة تصميم الإخراج في وحدة التحكم لتحسين قراءةأوامر CLI ( yarn add
...) الآن فكر في vorkspeysyيمكنك التخلص من yarn install
داخل مستودعهامن npx البديل الأقل خطورة: yarn dlx
، لتشغيل أشياء لمرة واحدةتشغيل الأمر تشغيل على جميع vorkspeysah مع yarn workspaces foreach
حزم Mankipatching من خلال سجل التصحيح:روابط إلى الحزم المحلية من خلال بروتوكول البوابة الإلكترونية:سير عمل جديد لتحرير مساحات العمل بشكل طبيعيفحص تصحيحي وإصلاحات لمساحة العمل (تم تضمين PROLOG)و أيضا ...
لا يتم إنشاء الحزم إلا إذا لم يكن هناك أي شيء على الإطلاقيمكن تشغيل / إيقاف تشغيل البنيات على الإطلاق ،ويتم تنفيذ البرامج النصية فيعمل تبعيات الأقران العامة على مستوى الصدفة حتى من خلال رابط غزلأصبح ملف القفل عاديًا YAMLكل الكود الآن على دعم TypeScriptPlug-inكسر التغييرات
أصبحت الإعدادات موحدة.يجب أن تتوافق الحزم مع حدودها.ولم تعد معتمدة علىالحزم . يتم تخزين الحزم في أرشيفات للقراءة فقط.سجل التغيير التفصيلي هنا ، تعليمات التحديث هنا .هل سيكون من الصعب الانتقال إلى Yarn 2؟
بفضل مختبرينا التجريبيين ودعمنا الشامل للنظام البيئي ، خففنا الكثير من الألم المرتبط بهذه الترقية الهائلة. سيخبر دليل النقل بمزيد من التفصيل ، ولكن بشكل عام ، أثناء استخدامك لأحدث إصدارات الأدوات (ESLint و Babel و TypeScript و Gatsby وما إلى ذلك) ، يجب أن يكون كل شيء طبيعيًا.ولكن هناك شيء واحد مهم: لا يمكن استخدام Flow و React-Native مع Plug'n'Play (PnP) في الوقت الحالي . نحن نبحث عن طرق للعمل مع فرقهم لجعلها تعمل. في الوقت الحالي ، يمكنك البقاء على Yarn 1 أو استخدام المكون الإضافي node_modules ، والذي يوفر التوافق العكسي لتسهيل الانتقال (لا يزال قيد التشغيل ، قد يكون هناك أخطاء). المزيد هنا .ماذا سيحدث للنسخة القديمة؟
سيتم إصدار Yarn 1.22 الأسبوع المقبل. بعد ذلك ، سيدخل فرع 1.x رسميًا في الوضع المباشر - أي لن تكون هناك إصدارات بخلاف إصلاحات الثغرات الأمنية. سيتم إجراء الميزات الجديدة حصريًا في Yarn 2. عمليًا ، هذا يعني:- سوف يغادر المستودع القديم (yarnpkg / yarn) إلى yarnpkg / legacy ليعكس حالته المتبقية. سيكون مفتوحًا لبعض الوقت ، ولكن على الأرجح سنقوم بأرشفته في غضون عام أو عامين.
- لن تتم إعادة تسمية المستودع الجديد إلى yarnpkg / yarn ، حيث سيؤدي ذلك إلى كسر العديد من الروابط القديمة. في المستقبل المنظور ، سيبقى في yarnpkg / berry .
- الموقع القديم سيذهب إلى legacy.yarnpkg.com ، الموقع الجديد (الآن next.yarnpkg.com) سينتقل إلى النطاق الرئيسي yarnpkg.com
- سيتم تحديث حزمة الغزل على npm على النحو التالي:
- ستظهر علامة التوت دائمًا في الإصدار 2.x الأخير
- legacy 1.x
- latest legacy , berry. , Yarn 2.
- - Node Yarn 2 Node 14, 2020 . yarnPath Yarn 2 .
- نحن ننتقل إلى إجراءات GitHub الأوتوماتيكية بالكامل وبعض مستودعات الدفعة (على وجه الخصوص Homebrew و Chocolatey وما إلى ذلك) لم يتم تثبيتها بعد. ونتيجة لذلك ، سيحصلون على تحديث Yarn 2 في وقت لاحق عن الباقي. نوصي باستخدام إصدار مجموعة الغزل (أو إصدار مجموعة سياسات الغزل على الغزل 1).
نتوقع اكتمال معظم هذه التغييرات بحلول 1 فبراير 2020. Source: https://habr.com/ru/post/undefined/
All Articles