· · 3 دقائق قراءة

Aspire 13.2 تضيف Bun، وتحسّن الحاويات، وتخفف احتكاك التصحيح

يضيف Aspire 13.2 دعماً من الدرجة الأولى لـ Bun في تطبيقات Vite، ويصلح موثوقية Yarn، ويقدم تحسينات في الحاويات تجعل سلوك التطوير المحلي أكثر صراحة ووضوحاً. إليك ما تغيّر فعلاً ولماذا يهم.

Aspire .NET Aspire Containers JavaScript Developer Productivity
هذا المقال متاح أيضاً بـ:English, Català, Español, Deutsch, Français, Português, Italiano, 日本語, 中文, 한국어, Русский, हिन्दी, Polski, Türkçe, Bahasa Indonesia, Nederlands

تمت ترجمة هذه المقالة تلقائيًا. للاطلاع على النسخة الأصلية، انقر هنا.

إذا كنت تبني واجهات خلفية .NET مع واجهات أمامية JavaScript داخل Aspire منذ فترة، فإن الإصدار 13.2 هو ذلك النوع من التحديث الذي يجعل يومك أفضل بهدوء. لا توجد نماذج جديدة لامعة. فقط تحسينات صلبة لأشياء كانت مزعجة قليلاً.

لنرَ ما الذي وصل فعلاً.

Bun أصبح مواطناً من الدرجة الأولى

الميزة الأبرز: دعم Bun لتطبيقات Vite في Aspire. استدعاء واحد متسلسل، وانتهى الأمر.

// TypeScript AppHost
const builder = await createBuilder();

await builder
  .addViteApp("frontend", "./frontend")
  .withBun();

await builder.build().run();

إذا كان فريقك يستخدم Bun بالفعل — وقد يكون كذلك، بالنظر إلى سرعات التثبيت الأسرع بكثير ووقت البدء الأقل — فلن يجبرك Aspire بعد الآن على السير عكس التيار. في السابق كان Aspire يفترض npm وكان عليك الالتفاف حول ذلك. الآن أصبحت .withBun() خياراً من الدرجة الأولى إلى جانب .withYarn() والسلوك الافتراضي لـ npm.

لماذا يهم هذا؟ لأن سرعة أدوات JavaScript تؤثر مباشرة في حلقة التطوير اليومية. إذا كان الواجهة الأمامية لديك تحتاج 30 ثانية لتثبيت الاعتمادات كلما أنشأت بيئة جديدة، فهذا يتراكم. Bun يقلص ذلك بشكل كبير.

البدائل المكافئة في AppHost بلغة C# موثقة على aspire.dev إذا كنت تفضل التأليف بلغة C# — تنطبق الأنماط نفسها كلها.

أصبح Yarn أكثر موثوقية

Bun هو العنوان الأبرز، لكن مستخدمي Yarn يحصلون على شيء ربما أكثر أهمية: أخطاء غامضة أقل. يحسن Aspire 13.2 موثوقية withYarn() مع addViteApp().

هذه الإصلاحات لا تبدو مثيرة حتى تمضي 20 دقيقة وأنت تحاول معرفة لماذا لم يبدأ مورد أمامي معتمد على Yarn. اعتبره قد تم إصلاحه.

نشر الحاويات الذي يمكنك بالفعل فهمه

هناك تحسينان في الحاويات يستحقان المعرفة:

سياسة السحب الصريحة

أصبح نشر Docker Compose يدعم الآن PullPolicy، بما في ذلك خيار Never:

import { createBuilder, ImagePullPolicy } from './.modules/aspire.js';

const builder = await createBuilder();
await builder.addDockerComposeEnvironment("compose");

const worker = await builder.addContainer("worker", "myorg/worker:latest")
  .withImagePullPolicy(ImagePullPolicy.Never);

await builder.build().run();

هذا هو نمط العمل الذي يقول: «استخدم الصورة التي بنيتها بالفعل واترك السجل خارج المعادلة». مفيد جداً عندما تكرر محلياً على صور تبنيها وتنشرها يدوياً، أو عندما ينتج CI صورة وتريد أن يستخدم Compose تلك الصورة بالضبط من دون سحب بعيد متسلل.

وحدات تخزين PostgreSQL 18+ تعمل من جديد

غيّر PostgreSQL 18 بنية دليل البيانات الداخلية. وهذا كسر ربط وحدات التخزين في Aspire بصمت — كانت وحدة البيانات تُنشأ لكن الاستمرارية لم تكن تعمل بشكل صحيح فعلياً. الإصدار 13.2 يصلح ذلك.

const postgres = await builder.addPostgres("postgres")
  .withDataVolume({ isReadOnly: false });

إذا كنت تشغّل PostgreSQL 18 أو أحدث مع وحدة بيانات، فحدّث إلى Aspire 13.2 ولا تفكر في الأمر مرة أخرى.

تحسينات جودة الحياة في التصحيح

بعض الأشياء التي تجعل جلسة AppHost أثناء التصحيح أقل إحباطاً:

  • DebuggerDisplayAttribute على الأنواع الأساسية — الآن تعرض DistributedApplication والموارد وتعابير نقاط النهاية قيماً مفيدة في المصحح بدلاً من أن تضطر إلى الغوص داخل أشجار الكائنات
  • رسائل فشل WaitFor أفضل — عندما تفشل الموارد في البدء، يصبح سياق الخطأ مفيداً فعلاً الآن
  • BeforeResourceStartedEvent يُطلق في الوقت الصحيح — فقط عندما يكون المورد في طور البدء فعلياً، وليس عند انتقالات حالة غير مرتبطة
  • launchSettings.json أصبح أكثر مرونة — فرصة أقل لأن تؤدي إعدادات معطوبة إلى إفساد بدء التطوير المحلي

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

خلاصة

Aspire 13.2 إصدار يركز على الجودة. دعم Bun هو العنوان الرئيسي، لكن تحسينات الحاويات والتصحيح هي ما سيجعل العمل اليومي أكثر سلاسة. يستحق التحديث — خصوصاً إذا كنت تستخدم PostgreSQL 18 مع وحدات تخزين البيانات.

التفاصيل الكاملة في المقال الأصلي لـ David Pine وفي وثائق ما الجديد في Aspire 13.2.

شارك:
عرض الكود المصدري لهذا المقال على GitHub ↗
← 68 دقيقة يومياً لإعادة شرح الكود لكوبايلوت؟ هناك حل لذلك
أين يتذكر وكيلك الأشياء؟ دليل عملي لتخزين سجل المحادثات →