منشئ موقع ويب ثابت يتيح لك استخدام خوادم وأطر عمل HTTP التي تعرفها بالفعل. ما عليك سوى إخبار Staticgen بكيفية بدء تشغيل الخادم الخاص بك، ثم مشاهدته وهو يزحف إلى موقعك وينشئ إصدارًا ثابتًا يتضمن جميع الصفحات والأصول المطلوبة.
إذا لم تكن مألوفًا، فيمكنك بالفعل استخدام أمر wget الذي مضى عليه عقود من الزمن لإخراج موقع ويب ثابت من موقع ديناميكي، وقد تم تصميم هذا المشروع خصيصًا لنفس الفكرة، مما يسمح لفريقك باستخدام أي خوادم وأطر عمل HTTP تريدها مألوفة بالفعل، في أي لغة.
لم أقم بإجراء أي معايير أو مقارنات علمية حتى الآن، ولكن إليك بعض النتائج حول برنامج MBP ثماني النواة لعام 2014:
عبر gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh يتم تخزين التكوين داخل ملف ./static.json في الدليل الجذر لمشروعك. الخيارات التالية متاحة:
"http://127.0.0.1:3000" ."build" .[] .30 . قم أولاً بإنشاء ملف التكوين ./static.json ، على سبيل المثال، هذا هو التكوين لخادم Go، الخاصية الوحيدة المطلوبة هي command :
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
} فيما يلي مثال لخادم Node.js، لاحظ أنه تم تعيين NODE_ENV للإنتاج بحيث يتم استخدام التحسينات مثل ذاكرة التخزين المؤقت لقالب Express لتحسين أداء الخدمة.
{
"command" : " NODE_ENV=production node server.js "
} قم بتشغيل الأمر staticgen لبدء عملية العرض المسبق:
$ staticgen
ينفذ Staticgen command الذي قدمته، وينتظر حتى يصبح الخادم متاحًا على url الذي تم تكوينه. يتم نسخ الصفحات والأصول إلى dir الذي تم تكوينه ثم يتم إيقاف تشغيل الخادم الخاص بك.
افتراضيًا، تكون مهلة عملية الإنشاء 15 دقيقة، اعتمادًا على موقفك، قد ترغب في زيادة هذه المهلة أو تقليلها باستخدام العلامة -t, --timeout ، إليك بعض الأمثلة:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
عند تشغيل command ، يقوم Staticgen بتعيين متغير البيئة STATICGEN على 1 ، مما يسمح لك بتغيير السلوك إذا لزم الأمر.
لعرض الموقع المعروض مسبقًا، قم بتشغيل الأمر التالي لبدء تشغيل خادم ملفات ثابت وفتح المتصفح:
$ staticgen serve
راجع دليل الأمثلة للحصول على أمثلة كاملة.
لا يقوم Staticgen بالعرض المسبق باستخدام متصفح بدون رأس، وهذا يجعله أسرع، ومع ذلك فهذا يعني أنه لا يمكنك الاعتماد على JavaScript من جانب العميل لمعالجة الصفحة.
تتم رعاية هذا المشروع بواسطة CTO.ai، مما يسهل على فرق التطوير إنشاء ومشاركة أتمتة سير العمل دون مغادرة سطر الأوامر.
ورعاة GitHub: