Cli: معيار التكوين [الميزة] لجميع الحزم

تم إنشاؤها على ١٥ مايو ٢٠٢٠  ·  2تعليقات  ·  مصدر: npm/cli

لست متأكدًا مما إذا كان هذا ممكنًا ، أو إذا كان ينتمي إلى Node.js repo.

ماذا / لماذا

غالبًا ما تكون هناك حالات تتطلب فيها بعض التبعيات تكوينات بناء محددة للعمل بشكل صحيح في بيئة شاملة (على سبيل المثال).

قد يكون هذا التكوين تكوين Babel أو Webpack config أو شيء مخصص لهذه الحزمة فقط.

كما هو الحال حاليًا ، لا توجد طريقة موحدة لتكوين الحزم.

يستخدم بعض الأشخاص اصطلاحًا حيث يضعون حقلاً في package.json مُسمى باسم الحزمة ، ويمكن للحزمة قراءة ذلك. لكنه لا يشعر بأنه قياسي بما فيه الكفاية.

متي

عندما تحتاج الحزمة إلى تهيئة مخصصة لوقت التشغيل أو وقت البناء.

أين

كيف

في بعض الأحيان تحتاج JavaScript إلى خطوات بناء لحالات معينة. سيكون لميزة التكوين هذه خيار "بناء تبعيات" اختياري يمكن تمريره إلى أي حزمة (سواء كانت تُنشئ وحدات أصلية ، أو تقوم فقط بتحويل JavaScript إلى نموذج أقل).

اعتمادًا على التكوين ، قد تحتاج الحزمة إلى بعض التبعيات التي لن تحتاج إليها بخلاف ذلك (تبعيات بناء fe).

لذلك سيكون نظام الحزم ذكيًا بما يكفي ، لأنه إذا كان لدى المستخدم تكوين حزمة معين ، فيمكنه تحديد التبعيات الإضافية التي يجب تثبيتها.

ربما تحتاج هذه الميزة فقط إلى التوسع من نظام الوحدات الأصلية الحالي إلى نظام JavaScript الشامل (بطريقة سهلة الاستخدام ، تكون الوحدات الأصلية صعبة).

قد يكون هذا مفيدًا جدًا لأشياء مثل التبعيات الاختيارية. سيكون من السهل ، باستخدام التهيئة ، تحديد استخدام المكتبة (على سبيل المثال) three بدلاً من babylonjs . سيؤدي هذا إلى تثبيت التبعية المناسبة. إنه مشابه لاعتماديات الأقران ، ولكنه أسهل ، والحزمة المعينة التي تعتمد على الأقسام الاختيارية سيكون لها طريقة قياسية للوصول إلى واجهة برمجة التطبيقات للتكوين بشكل موثوق لتحديد ما إذا كانت شروط معينة محددة (هذا أمر صعب حاليًا ، وأي اجتياز كيس كيس للوحدات node_modules غير- المعيار في هذه الحالات).

السلوك الحالي

  • غير متوفر

سلوك متوقع

  • مغطاة أعلاه على مستوى عال

كمثال آخر ، يحتاج مستهلكو الحزمة في بعض الأحيان إلى استهلاك مصدر الحزمة بدلاً من المخرجات المجمعة المعتادة من أجل تجميع الكود بطرق مختلفة (عادةً ما أواجه رغبة في القيام بذلك باستخدام Webpack).

بشكل عام ، هناك مشاكل مع هذا النوع من الأشياء ، والتي لا توفر NPM حتى الآن طريقة شائعة للتعامل معها.

من الذى

مؤلفو الحزم ومستخدميهم

مراجع

  • غير متوفر
Enhancement

التعليق الأكثر فائدة

ستكون هذه الميزة مذهلة لأن المطورين يواجهون أحيانًا الكثير من الصعوبات في إصلاح هذه الأنواع من المشكلات.

ال 2 كومينتر

ستسمح هذه الميزة لمؤلفي الحزم ، بطريقة قياسية ، بإضافة ميزات إلى حزمهم حيث يمكنهم أن يقولوا "أوه ، تريد أن يكون CSS خارجيًا بدلاً من أن يكون مدمجًا في ملفات الحزمة المعتادة ، لا مشكلة ، فقط أضف هذا- و- مثل هذا الخيار في تكوين المشروع الخاص بك ، فستقوم هذه الحزمة تلقائيًا باستبعاد أي CSS من مخرجاتها "، وبعد ذلك بالنظر إلى هذا التكوين القياسي ، يمكن لمؤلف الحزمة استخدام Webpack أو Babel أو أي أداة مطلوبة لتحقيق النتيجة.

بهذا المعنى ، سيكون لجميع الحزم طريقة قياسية للسماح للمستخدمين بتوصيل الخيارات إليهم ، حيث قد تملي الخيارات مجموعات بديلة من التبعيات أو بناء خطوات ، بغض النظر عن الملفات المصدر أو أدوات البناء التي تستخدمها الحزمة.

سيكون هناك تكوين من جانب المستخدم ، ولكن مثل هذه الخيارات قد يتم تعيينها للتهيئة على جانب الحزمة والتي من شأنها أن تملي التبعيات (وبالتالي أدوات البناء) للتشغيل أثناء التثبيت ، أو ما شابه ذلك.

يمكنني رؤية معظم الحزم ثم شحن إخراج كود المصدر الافتراضي ، وبعض المستخدمين يقومون بتخصيصه.

يحدث غالبًا أن أفضل طريقة للحصول على شفرة مصدر TypeScript للترجمة ، مع الميزات الكاملة التي لا تقتصر على إصدار ملف التصريح ، هي شحن شفرة مصدر TypeScript الأولية ، ونقلها إلى جانب المستهلك. من شأن اتفاقية التكوين أن تساعد بشكل كبير في هذا.

تعلن TypeScript أنه لا ينبغي للمستهلكين أبدًا تحويل مصدر TypeScript ، لكنهم حفروا حفرة يمكن أن تكون ضرورية بسبب هذه المشكلة المرتبطة. أنا أستخدمه فقط كمثال واحد حيث يمكن أن يكون معيار التكوين مفيدًا بشكل كبير.

ستكون هذه الميزة مذهلة لأن المطورين يواجهون أحيانًا الكثير من الصعوبات في إصلاح هذه الأنواع من المشكلات.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات