English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في الآونة الأخيرة،أنا أعمل على مشروع موقع أدواتي باستخدام react + express
ثم لأنني أحتاج إلى تغييره بانتظام وأريد أيضًا إجراء اختبارات على الخادم،لذا يجب علي دائمًا استخدام webpack ثم رفع الملفات يدويًا،وهذا أمر مزعج للغاية،لذا قررت البحث عن سكريبت يمكنه مراقبة تغيير الملفات وتحميلها تلقائيًا
أولاً،نستخدم npm لتثبيت مكتبتين م封装تين
npm install ssh2-sftp-client npm install gaze
يستخدم النظام الأول لرفع الملفات عبر sftp
يستخدم النظام الثاني لمراقبة تغيير الملفات.بالطبع،يمكنك أيضًا استخدام مكتبة fs المدمجة في node.
استخدام هذه الأنظمة هنا:ssh2-sftp-client gaze
بعد التثبيت، الخطوة الأولى هي مراقبة تغيير الملفات،بسبب أن ملفاتي تم بناؤها باستخدام webpack،لذلك لن يكون هناك ملفات إضافية بعد الآن،لذا يمكنني استخدام changed فقط،والاستخدامات الأخرى يرجى الرجوع إلى الرابط المذكور أعلاه،وهي متشابهة جدًا
gaze(['路径 إلى ملفاتك/*.*','يمكنك أيضًا استخدام طريقة التشغيل عبر مصفوفة لمراقبة عدة مجلدات /app.js'], function(err, watcher) { let watched = this.watched(); // يستمع إلى تغيير الملف this.on('changed', (filepath) => { // romotePath هو موقع الملف على المسافة let romotePath = '/root' + filepath.substr(15); // دالة put هي دالة رفع الملفات،وسأشرحها لاحقا put(filepath,romotePath); console.log(filepath + ' تم تغييره'); }); });
ثم يبدأ كتابة دالة رفع الملفات الخاصة بنا
function put(localPath,romotePath){ let sftp = new Client(); sftp.connect({ عنوان الخادم: 'عنوان خادمك', المنفذ: 'المنفذ،لم يتم تغييره فسيكون 22', username: 'اسم المستخدم للاتصال', password: 'كلمة المرور' }).then(() => { return sftp.put(localPath,remotePath); }).then(() =>{ console.log("Upload completed"); }).catch((err) => { console.log(err, 'catch error'); }); }
حسنًا، لا تنسوا أن يجب أن تقوموا بجلب الأنظمة في بداية ملفكم.
let Client = require('ssh2-sftp-client'); let gaze = require('gaze');
دعنا نبدأ بالتجربة. لقد وصلنا إلى مجلد webpack الخاص بنا
يمكنك رؤية أن التغييرات تم إجراؤها وأن التحميل تم بنجاح. يحتاج التحميل إلى وقت، يرجى الصبر.
لقد وصلنا إلى خادمنا، وبالفعل تم تحديث وقت التحرير إلى الوقت الحالي.
من الآن فصاعدًا، لا أستطيع تحميل كل ملف على حدة. كلما كنت أريد تعديل شيء، أفتح نافذة وأبدأ هذا السكربت، وأستطيع كتابة الكود بسهولة.
ما تم ذكره أعلاه هو ما قدمه المحرر لكم حول كيفية مراقبة التغييرات في الملفات باستخدام nodejs وتحميلها إلى الخادم باستخدام sftp، آمل أن يكون هذا مفيدًا لكم. إذا كان لديكم أي أسئلة، فالرجاء ترك تعليق، وسأقوم بالرد عليكم في أقرب وقت. وأود أيضًا أن أعبر عن شكري لتقديم دعمكم لموقع呐喊 التعليمي!
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع المالك الأصلي بحقوق الطبع والنشر، ويتم توفير المحتوى من قبل مستخدمي الإنترنت الذين يقدمون المساهمات بشكل متطوع ويتم تحميلها بشكل مستقل، ولا يمتلك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا رأيت محتوى يشتبه في انتهاك حقوق النسخ، فالرجاء إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') لإبلاغنا، وتقديم الأدلة ذات الصلة، وسنقوم بإزالة المحتوى المزعوم فور التحقق منه.