node.js - "firebase serve" في وظائف firebase لا يقوم بتشغيل التغييرات الأخيرة
أنا ألعب مع وظائف Firebase. تعمل بشكل جيد عند النشر على خادم Firebase باستخدام الأمر firebase deploy --only functions. ومع ذلك، أود اختبار وظائفي محليًا قبل النشر على الخادم بالطبع. ما أراه عند تشغيل firebase serve هو أن الوظائف "المنشورة" محليًا لم تتضمن آخر التغييرات التي أجريتها في index.ts - إذ أنها تعمل بالإصدار الأخير المبني، الموجود في index.js.
سؤالي هو، كيف يمكنني بناء مشروع وظائف Firebase الخاص بي يدويًا لاختباره محليًا مع أحدث التغييرات؟ هل يجب على firebase serve أن يبني المشروع تلقائيًا قبل نشره محليًا؟ بالنسبة لي، يبدو وكأنه خطأ.
الإجابة رقم 1
إذا كنت تريد إعادة تحميل التغييرات على TypeScript الخاص بك عند تشغيل firebase serve أو firebase functions:shell، كل ما عليك فعله هو بناء مشروعك مرة أخرى باستخدام سكربت npm الذي تم إنشاؤه لك عند تهيئة المشروع (انظر package.json):
cd functions
npm run build
هذا سيحوّل TypeScript الخاص بك إلى JavaScript، وستتم التقاط التغييرات على JavaScript تلقائيًا بواسطة المحاكي.
أيضًا، إذا كنت مستخدمًا أكثر تقدمًا لـ TypeScript، يمكنك تشغيل tsc --watch لترجمة TS إلى JS تلقائيًا عند تغيير ملفات المصدر على القرص. يمكنك قراءة المزيد عن ذلك في هذا المدونة.
الإجابة رقم 2
firebase serve لا يبدو أنه يشغل npm build. ولكن إذا نظرت داخل functions/package.json، يمكنك أن ترى أنه يوجد بالفعل سكربت serve هناك يقوم بتنفيذ npm run build && firebase serve --only functions. لذا إذا قمت فقط بما يلي:
cd functions
npm run serve
يمكنك البناء والتقديم دون الحاجة إلى تنفيذ أمرين منفصلين.
