لطالما كان لدينا سؤال: ما مدى سهولة وسرعة نشر مشروع أمامي؟
فكرنا في أداة مثل Jenkins. يعرف العديد من الأشخاص الذين قاموا بتكوينه أن الأمر يستغرق الكثير من الوقت للتكوين ، والأهم من ذلك ، يتطلب الكثير من موارد النظام. رفعه على الخادم يعني تخصيص ذاكرة ونصف غيغابايت. إنه لمن دواعي سروري عندما يكون لديك 500 ميغابايت لكل شيء ، على سبيل المثال.
البديل هو مينا. هذا حل رائع ونستخدمه في مشاريع روبي. ولكن ماذا لو كان لديك واجهة أمامية فقط؟ ضع روبي واصنع حزمة؟ لا ، الأمر معقد للغاية. لدى مينا ، بالطبع ، وظائف رائعة ، لكننا نريد القيام بذلك على NodeJS بدون إيماءات غير ضرورية.
في النهاية ، كتبنا نصوص باش ، لكنها أزعجتنا. وقد توصلنا إلى فكرة كتابة الخدمة الصغيرة الخاصة بنا لنشر التطبيقات الأمامية ، والتي ستكون:
- حزمة npm
- لديك تكوين صغير وبسيط
- يستغرق 10 دقائق لتكوينه و 5 دقائق للنشر
- أن يكون لديك نظام تحرير (إذا حدث شيء ما بعد كل شيء خطأ ويقول أحدهم "إنه كذلك
كسر ، ثم يمكنك العودة بأمان وبسرعة إلى الإصدار السابق)
وقمنا بجعل
Runy - أداة ملائمة وعملية لنشر الواجهة الأمامية.
كل ما تحتاجه لتكوينه والنشر الأول بعد تثبيت الحزمة هي ثلاثة أوامر:
الحرف الأول - قم بإنشاء تكوين وأدخل بياناتك فيه
الإعداد - إنشاء هيكل مشروع
نشر - نشر مشروعك
هذا كل ما في الأمر!
لقد عملت هذه الوحدة على تبسيط حياتنا! الآن يتم النشر في فريق واحد. سريع وسهل. عندما يأتي إلينا مطورين جدد ، يمكنك منحهم حق الوصول إلى خادم dev / stage حتى يتمكن الرجال من نشر أنفسهم. سيجد المطورون الصغار أيضًا أنها مفيدة ، ولا يحتاجون إلى حد دخول للاستخدام ، وفي المستقبل يمكنهم اكتشاف الوحدة واكتساب المعرفة الجديدة.
القليل عن الجزء التقني (يوجد دليل أكثر تفصيلاً على
جيثب ). لدى Runy حاليًا الأوامر التالية: init ، و setup ، و النشر ، و unlock ، و rollback.
الأولي
يقوم بإنشاء ملف تكوين في موقع استدعاء الأمر. يجب عليك إدخال بياناتك فيه. كما ترى ، نحن نستخدم اتصال وكيل ssh ، لذلك لن تكون هناك كلمات مرور في التكوين.
// runy.js module.exports = { host: '0.0.0.0', // username: 'username', // port: 22, // remotePath: '/your/project/path', // git: 'link-to-your-git-repository', // ( ssh) agent: process.env.SSH_AUTH_SOCK, // commands: [ // 'npm install', 'npm run build', ], };
الإعداد
في المسار المحدد في التهيئة ، يقوم بإنشاء مجلد الإصدارات (يقوم بتخزين الإصدارات في الأرقام 1 و 2 و 3 وما إلى ذلك) وملف .current.release (يتم تخزين رقم الإصدار الحالي فيه).
انشر
يتمتع هذا الفريق ببعض الحماية ، وفي الوقت نفسه يمكن لشخص واحد فقط نشر.
يقوم الفريق بما يلي. إنشاء مجلد مؤقت ، وتثبيت مشروع ، وتنفيذ قائمة بالأوامر الخاصة بك من ملف التكوين (الأوامر) لسحب التبعيات وإنشاء التطبيق ، وإنشاء مجلد إصدار جديد ، ونقل المشروع الذي تم إنشاؤه للتو هناك ، والتحقق من عدد الإصدارات وحذف الإصدارات القديمة (يتم تخزين 3 إصدارات الآن) ، وإنشاء رابط رمزي إلى الإصدار الحالي (الإصدار الحالي سيكون متاحًا دائمًا على هذا المسار الخاص بك عن بعد / المسار الحالي) ، وتحديث الملف برقم الإصدار ، وتنظيف المجلدات.
افتح
يحذف ملف الحماية الذي تم إنشاؤه عند تنفيذ أمر النشر. بشكل عام ، يتم حذف الملف تلقائيًا وحتى عند معالجة الأخطاء ، ولكن هذا الأمر موجود في جميع المناسبات.
التراجع
إرجاع ارتباط رمزي إلى الإصدار السابق وحذف الإصدار الحالي.
ملاحظة لا يزال لدينا أفكار لتطوير هذه الأداة ، يمكنك أيضًا المشاركة في تطوير المشروع من خلال إنشاء / تنفيذ المهام
هنا .
دع نشر كل مطور يصبح أكثر ملاءمة وأسرع.