انتقل إلى المحتوى

خادم التطوير

قدّم مجلدًا مع إعادة تحميل الصفحات باستخدام elide dev أو elide serve، وشغّل معالجًا بأسلوب Fetch، وشغّل خادمًا عبر عدة سياقات Elide.

في هذه الصفحة

يقدّم الأمران elide dev و elide serve مجلدًا من الملفات أو يشغّلان سكربت خادم.

elide dev ./public
elide serve ./dist
الأمرالعنوان الافتراضيإعادة التحميل عند تغيّر ملف
elide dev127.0.0.1:3000صفحات HTML، عند تقديم مجلد
elide serve127.0.0.1:8080لا

يُشغَّل خادم ملفات للمجلد؛ أما السكربت فيعمل كبرنامج ولا يُعاد تحميله.

0:09 / 0:09
الخيارالتأثير
--host HOSTالمضيف الذي يُربط به.
--port PORTالمنفذ الذي يُربط به.
--no-tuiإخراج سجلات بسيط بدلًا من واجهة TUI.
--no-watchللأمر dev فقط: بلا مراقبة ولا إعادة تحميل.
--contexts=Nيشغّل N نسخة من التطبيق؛ والقيمة auto تحدد العدد من أنوية CPU. في Linux فقط.

تقديم مجلد

الطلبالاستجابة
/، /docs، /docs/ملف index.html في المجلد
مجلد بلا index.html404؛ لا توجد قوائم بمحتويات المجلدات
/about عند وجود about.html فقط404؛ اربط إلى about.html
ملف يبدأ بنقطة مثل /.env404. ويُقدَّم /.well-known/.
رابط رمزي يشير إلى خارج المجلد، أو .. في المسار404
POST والطرق الأخرى405 من elide serve؛ ويجيب elide dev كما يجيب على GET
  • يُحدَّد Content-Type من امتداد الملف: text/html; charset=utf-8، text/css، text/javascript، application/json، application/wasm، image/png وغيرها.
  • تُرسل الملفات كاملة دون ضغط، وبلا ETag أو Last-Modified أو Cache-Control؛ وتتلقى طلبات Range والطلبات الشرطية استجابة 200 كاملة. ضع شبكة CDN أو وكيلًا عكسيًا أمامه للتخزين المؤقت والضغط.
  • يضيف elide dev سكربت إعادة تحميل إلى كل صفحة HTML ويعيد تحميلها عند تغيّر أي ملف في المجلد.

تشغيل معالج fetch

// entrypoint.mjs
export default {
  async fetch(request) {
    return new Response("ok");
  },
};
elide serve entrypoint.mjs

يخدم elide run entrypoint.mjs الطلبات أيضًا، على hostname و port المُصدَّرين أو على 127.0.0.1:8080. ويستخدم Elide.serve({ port: 3005, fetch }) عنوانه الخاص مع كل الأوامر.

الخدمة عبر عدة سياقات

elide serve --contexts=4 entrypoint.mjs
  • يشغّل كل سياق وحدة الدخول مرة واحدة ويحتفظ بمتغيراته العامة الخاصة، فيَعُدّ عدّاد الطلبات لكل سياق على حدة.
  • يبقى الاتصال على سياق واحد طوال عمره، بما في ذلك طلبات keep-alive.
  • إذا فشل سياق واحد، يتوقف الخادم.

لتحكم أدق، اضبط engine.contexts في elide.pkl؛ راجع سياقات المحرّك.

أمثلة

هل كانت هذه الصفحة مفيدة؟