بالنسبة للمطورين الذين يفضلون كتابة الوظائف في TypeScript، توفر Cloud Functions نوعين من الدعم:
- قم بإنشاء وتكوين مشاريع TypeScript للتحويل التلقائي عند التهيئة (
firebase init functions
). - قم بنقل مصدر TypeScript الموجود إلى JavaScript في وقت النشر عبر ربط النشر المسبق .
باتباع الإرشادات الواردة في هذا الدليل، يمكنك ترحيل مشروع JavaScript موجود إلى TypeScript ومتابعة نشر الوظائف باستخدام ربط النشر المسبق لنقل التعليمات البرمجية المصدر الخاصة بك. يقدم TypeScript العديد من المزايا مقارنة بـ Vanilla JavaScript عند كتابة الوظائف:
- يدعم TypeScript أحدث ميزات JavaScript مثل المزامنة/الانتظار، مما يبسط إدارة الوعود
- يسلط برنامج Cloud Functions الضوء على المشكلات الشائعة أثناء قيامك بالبرمجة
- تساعدك سلامة الكتابة على تجنب أخطاء وقت التشغيل في الوظائف المنشورة
إذا كنت جديدًا في استخدام TypeScript، فراجع TypeScript في 5 دقائق .
تهيئة مشروع Cloud Functions جديد باستخدام TypeScript
قم بتشغيل firebase init functions
في دليل جديد. تمنحك الأداة خيارات لإنشاء المشروع باستخدام JavaScript أو TypeScript. اختر TypeScript لإخراج بنية المشروع التالية:
myproject
+- functions/ # Directory containing all your functions code
|
+- package.json # npm package file describing your Cloud Functions code
|
+- tsconfig.json
|
+- .eslintrc.js # Optional file if you enabled ESLint
+- tsconfig.dev.json # Optional file that references .eslintrc.js
|
+- src/ # Directory containing TypeScript source
| |
| +- index.ts # main source file for your Cloud Functions code
|
+- lib/
|
+- index.js # Built/transpiled JavaScript code
|
+- index.js.map # Source map for debugging
بمجرد اكتمال التهيئة، قم بإلغاء تعليق العينة في ملف Index.ts وقم بتشغيل npm run serve
لرؤية وظيفة "Hello World" قيد التنفيذ.
استخدام مشروع TypeScript موجود
إذا كان لديك مشروع TypeScript موجود، فيمكنك إضافة رابط النشر المسبق للتأكد من نقل مشروعك في كل مرة تقوم فيها بنشر التعليمات البرمجية الخاصة بك إلى Cloud Functions for Firebase. ستحتاج إلى ملف tsconfig.json
تم تشكيله بشكل صحيح ومشروع Firebase، وستحتاج إلى إجراء التعديلات التالية على تكوين Firebase الخاص بك:
قم بتحرير
package.json
لإضافة برنامج نصي bash لإنشاء مشروع TypeScript الخاص بك. على سبيل المثال:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
قم بتحرير
firebase.json
لإضافة خطاف النشر المسبق لتشغيل البرنامج النصي للإنشاء. على سبيل المثال:{ "functions": { "predeploy": "npm --prefix functions run build", } }
باستخدام هذا التكوين، يقوم أمر firebase deploy --only functions
ببناء كود TypeScript الخاص بك ونشره كوظائف.
ترحيل مشروع JavaScript موجود إلى TypeScript
إذا كان لديك مشروع Cloud Functions موجود قمت بتهيئته وتطويره في JavaScript، فيمكنك ترحيله إلى TypeScript. ننصحك بشدة بإنشاء نقطة تفتيش git أو نسخة احتياطية أخرى قبل البدء.
لترحيل مشروع JavaScript Cloud Functions موجود:
- قم بإنشاء نقطة تفتيش git واحفظ نسخًا من ملفات مصدر JavaScript الموجودة لديك.
- في دليل المشروع، قم بتشغيل
firebase init functions
وحددTypeScript
عندما يُطلب منك لغة لكتابة الوظائف. - عندما يُطلب منك ما إذا كنت تريد الكتابة فوق ملف
package.json
الموجود أم لا، حدد لا إلا إذا كنت متأكدًا من أنك لا تريد الاحتفاظ بالملف الموجود. - احذف
index.ts
الموجود في الدليلfunctions/src
، واستبدله بكود المصدر الموجود لديك. - في ملف
tsconfig.json
الذي تم إنشاؤه عند التهيئة، قم بتعيين خيارات المترجم للسماح بـ JavaScript:"allowJs": true
. - انسخ ملف
package.json
المحفوظ إلى دليلfunctions
، وقم بتحريره لتعيين"main"
إلى"lib/index.js"
. أيضًا في
package.json
، أضف نصًا برمجيًا للإنشاء لـ TypeScript كما يلي:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
أضف
"typescript"
باعتباره تبعية dev عن طريق تشغيلnpm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser
.بالنسبة لجميع التبعيات، قم بتشغيل
npm install --save @types/<dependency>
.أعد كتابة الكود المصدري من .js إلى .ts حسب الرغبة.
محاكاة وظائف TypeScript
لاختبار وظائف TypeScript محليًا، يمكنك استخدام أدوات المحاكاة الموضحة في تشغيل الوظائف محليًا . من المهم تجميع التعليمات البرمجية الخاصة بك قبل استخدام هذه الأدوات، لذا تأكد من تشغيل npm run build
داخل دليل الوظائف الخاص بك قبل تشغيل firebase emulators:start
أو firebase functions:shell
. وبدلاً من ذلك، قم بتشغيل npm run serve
أو npm run shell
كاختصار؛ تعمل هذه الأوامر على تشغيل الإنشاء وخدمة/بدء تشغيل غلاف الوظائف.
سجلات الوظائف لمشاريع TypeScript
أثناء firebase deploy
، يتم نقل index.ts
الخاص بمشروعك إلى ملف index.js
، مما يعني أن سجل وظائف السحابة سيخرج أرقام الأسطر من ملف index.js
وليس الكود الذي كتبته. لتسهيل العثور على المسارات وأرقام الأسطر المقابلة في index.ts
، firebase deploy
بإنشاء functions/lib/index.js.map
. يمكنك استخدام خريطة المصدر هذه في بيئة التطوير المتكاملة (IDE) المفضلة لديك أو عبر وحدة العقدة .