بالنسبة إلى المطورين الذين يفضلون كتابة دوال في TypeScript، يوفّر Cloud Functions نوعَين من الدعم:
- يمكنك إنشاء مشاريع TypeScript وإعدادها للترجمة التلقائية عند الإعداد (
firebase init functions
). - تحويل مصدر TypeScript الحالي إلى JavaScript في وقت النشر من خلال عنصر الجذب المسبق.
باتباع التعليمات الواردة في هذا الدليل، يمكنك نقل بيانات مشروع JavaScript على TypeScript ومواصلة نشر الدوال باستخدام لنشر عنصر الجذب لترجمة رمز المصدر. تقدم TypeScript العديد من المزايا مقارنة بـ vanilla JavaScript عند كتابة الدوال:
- تتوافق TypeScript مع أحدث ميزات JavaScript، مثل عدم المزامنة أو الانتظار، ما يسهّل إدارة الوعود.
- يتم تمييز المشاكل الشائعة من خلال الترميز Cloud Functions linter.
- تساعدك ميزة "أمان الكتابة" على تجنُّب أخطاء وقت التشغيل في الوظائف المنشورة.
إذا كنت مبتدئًا في استخدام 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
لرؤية عبارة "مرحبًا بكم." عمليًا.
استخدام مشروع 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 أو النسخ الاحتياطي قبل البدء.
لنقل مشروع Cloud Functions حالي بلغة JavaScript:
- أنشِئ نقطة فحص 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"
كاعتمادية على المطوّر من خلال تشغيل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
كاختصار فهذه الأوامر تقوم بتشغيل الإصدار
تقديم/بدء الدوال Shell.
سجلات الدوال لمشاريع TypeScript
خلال firebase deploy
، يتم تحويل index.ts
لمشروعك إلى index.js
.
مما يعني أن سجل دوال السحابة سيُخرج أرقام الأسطر من
index.js
وليس الرمز الذي كتبته. لتسهيل العثور على
والمسارات المقابلة وأرقام الأسطر في index.ts
،
يُنشئ firebase deploy
functions/lib/index.js.map
. يمكنك استخدام هذا المصدر
في بيئة التطوير المتكاملة التي تفضّلها أو عبر وحدة عقدة.