منذ بضعة أشهر أصدرنا Encore.ts - إطار عمل خلفي مفتوح المصدر لـ TypeScript / Node.js.
نظرًا لوجود العديد من أطر العمل بالفعل، نريد مشاركة بعض قرارات التصميم الخارجية التي اتخذناها وكيف تؤدي إلى تحسين الأداء وتجربة المطورين.
يأتي Encore.ts مزودًا بدعم مدمج لخدمة الأصول الثابتة (مثل الصور وملفات HTML وCSS وملفات JavaScript).
يعد هذا مفيدًا عندما تريد خدمة موقع ويب ثابت أو تطبيق من صفحة واحدة (SPA) تم تجميعه مسبقًا في ملفات ثابتة.
عند تحديد الملفات الثابتة، يتم تقديم الملفات مباشرة من Encore.ts Rust Runtime.
وهذا يعني أنه لا يتم تنفيذ تعليمات برمجية JavaScript لخدمة الملفات، مما يحرر وقت تشغيل Node.js للتركيز على تنفيذ منطق الأعمال.
يعمل هذا على تسريع عرض الملفات الثابتة بشكل كبير، بالإضافة إلى تحسين زمن الوصول لنقاط نهاية واجهة برمجة التطبيقات (API).
لقد قمنا مؤخرًا بنشر معايير توضح كيف أنها أسرع بمقدار 9 مرات من تطبيقات Node المستندة إلى Express.js.
مزيد من المعلومات في المستندات
مثال لتطبيق يوضح كيفية تقديم الملفات الثابتة باستخدام Encore.ts
يعمل عرض الملفات الثابتة في Encore.ts بشكل مشابه لتحديد نقاط نهاية واجهة برمجة التطبيقات، ولكن باستخدام وظيفة api.static بدلاً من وظيفة واجهة برمجة التطبيقات العادية.
import { api } from "encore.dev/api"; export const assets = api.static( { expose: true, path: "/frontend/*path", dir: "./assets" }, );
سيؤدي هذا إلى خدمة جميع الملفات الموجودة في دليل ./assets ضمن بادئة مسار الواجهة الأمامية.
يقوم Encore تلقائيًا بتقديم ملفات Index.html في جذر الدليل. في الحالة المذكورة أعلاه، يعني ذلك أن طلب عنوان URL /frontend سيخدم الملف ./assets/index.html، و/frontend/hello سيخدم الملف ./assets/hello أو ./assets/hello/index.html ( أيهما موجود).
باستخدام وقت تشغيل قائم على Rust جنبًا إلى جنب مع Node.js، يستطيع Encore.ts تحسين أداء تطبيقات TypeScript.
إذا كان الأداء مهمًا لمشروعك، فقد تكون فكرة جيدة تجربة Encore.ts.
وكلها مفتوحة المصدر، لذا يمكنك التحقق من الكود والمساهمة على GitHub.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3