डेवलपर्स के लिए जो टाइपस्क्रिप्ट में फ़ंक्शन लिखना पसंद करते हैं, क्लाउड फ़ंक्शंस दो प्रकार का समर्थन प्रदान करता है:
- आरंभीकरण (
firebase init functions
) पर स्वचालित ट्रांसप्लिकेशन के लिए टाइपस्क्रिप्ट प्रोजेक्ट बनाएं और कॉन्फ़िगर करें। - पूर्व नियोजित हुक के माध्यम से तैनाती के समय जावास्क्रिप्ट में मौजूदा टाइपस्क्रिप्ट स्रोत को ट्रांसपाइल करें।
इस गाइड के निर्देशों का पालन करते हुए, आप किसी मौजूदा जावास्क्रिप्ट प्रोजेक्ट को टाइपस्क्रिप्ट में माइग्रेट कर सकते हैं और अपने सोर्स कोड को ट्रांसपाइल करने के लिए प्रीडिप्लॉय हुक का उपयोग करके फ़ंक्शंस को तैनात करना जारी रख सकते हैं। फ़ंक्शंस लिखते समय टाइपस्क्रिप्ट वेनिला जावास्क्रिप्ट पर कई लाभ प्रदान करता है:
- टाइपस्क्रिप्ट नवीनतम जावास्क्रिप्ट सुविधाओं का समर्थन करता है जैसे async/प्रतीक्षा, वादा प्रबंधन को सरल बनाना
- क्लाउड फ़ंक्शंस लिंटर कोडिंग करते समय सामान्य समस्याओं को हाइलाइट करता है
- प्रकार की सुरक्षा आपको परिनियोजित कार्यों में रनटाइम त्रुटियों से बचने में मदद करती है
यदि आप टाइपस्क्रिप्ट के लिए नए हैं, तो 5 मिनट में टाइपस्क्रिप्ट देखें।
टाइपस्क्रिप्ट के साथ एक नया क्लाउड फ़ंक्शंस प्रोजेक्ट प्रारंभ करना
एक नई निर्देशिका में firebase init functions
चलाएँ। टूल आपको जावास्क्रिप्ट या टाइपस्क्रिप्ट के साथ प्रोजेक्ट बनाने का विकल्प देता है। निम्न प्रोजेक्ट संरचना को आउटपुट करने के लिए टाइपस्क्रिप्ट चुनें:
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
चलाएँ।
मौजूदा टाइपस्क्रिप्ट प्रोजेक्ट का उपयोग करना
यदि आपके पास एक मौजूदा टाइपस्क्रिप्ट प्रोजेक्ट है, तो आप यह सुनिश्चित करने के लिए एक पूर्व-तैनाती हुक जोड़ सकते हैं कि जब भी आप अपने कोड को फायरबेस के लिए क्लाउड फ़ंक्शंस में तैनात करते हैं, तो आपकी परियोजना को स्थानांतरित कर दिया जाता है। आपको ठीक से बनाई गई tsconfig.json
फ़ाइल और एक Firebase प्रोजेक्ट की आवश्यकता होगी, और आपको अपने Firebase कॉन्फ़िगरेशन में निम्नलिखित संशोधन करने होंगे:
अपना टाइपस्क्रिप्ट प्रोजेक्ट बनाने के लिए बैश स्क्रिप्ट जोड़ने के लिए
package.json
संपादित करें। उदाहरण के लिए:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
बिल्ड स्क्रिप्ट चलाने के लिए एक पूर्व नियोजित हुक जोड़ने के लिए
firebase.json
संपादित करें। उदाहरण के लिए:{ "functions": { "predeploy": "npm --prefix functions run build", } }
इस कॉन्फ़िगरेशन के साथ, एक firebase deploy --only functions
कमांड आपके टाइपस्क्रिप्ट कोड को बनाता है और इसे फ़ंक्शन के रूप में तैनात करता है।
किसी मौजूदा JavaScript प्रोजेक्ट को TypeScript में माइग्रेट करना
यदि आपके पास एक मौजूदा क्लाउड फ़ंक्शंस प्रोजेक्ट है जिसे आपने जावास्क्रिप्ट में आरंभ और विकसित किया है, तो आप इसे टाइपस्क्रिप्ट में माइग्रेट कर सकते हैं। आरंभ करने से पहले आपको git checkpoint या अन्य बैकअप बनाने के लिए दृढ़ता से प्रोत्साहित किया जाता है।
किसी मौजूदा JavaScript क्लाउड फ़ंक्शन प्रोजेक्ट को माइग्रेट करने के लिए:
- एक गिट चेकपॉइंट बनाएं और अपनी मौजूदा जावास्क्रिप्ट स्रोत फ़ाइलों की प्रतियां सहेजें।
- प्रोजेक्ट डायरेक्टरी में,
firebase init functions
चलाएं और फ़ंक्शन लिखने के लिए भाषा के लिए संकेत दिए जाने परTypeScript
चयन करें। - यह पूछे जाने पर कि क्या मौजूदा
package.json
फ़ाइल को अधिलेखित करना है, तब तक नहीं चुनें जब तक कि आप सुनिश्चित न हों कि आप मौजूदा फ़ाइल को नहीं रखना चाहते हैं। - डायरेक्टरी
functions/src
मेंindex.ts
डिलीट करें, इसे अपने मौजूदा सोर्स कोड से रिप्लेस करें। - प्रारंभ में बनाई गई
tsconfig.json
फ़ाइल में, जावास्क्रिप्ट को अनुमति देने के लिए कंपाइलर विकल्प सेट करें:"allowJs": true
। - अपने सहेजे गए
package.json
फ़ाइल कोfunctions
निर्देशिका में कॉपी करें, और इसे"main"
"lib/index.js"
पर सेट करने के लिए संपादित करें। इसके अलावा
package.json
में, टाइपस्क्रिप्ट के लिए निम्नलिखित की तरह एक बिल्ड स्क्रिप्ट जोड़ें:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser
चलाकर देव निर्भरता के रूप में"typescript"
जोड़ें।सभी निर्भरताओं के लिए,
npm install --save @types/<dependency>
चलाएँ।इच्छानुसार स्रोत कोड को .js से .ts में फिर से लिखें।
टाइपस्क्रिप्ट कार्यों का अनुकरण
स्थानीय रूप से टाइपस्क्रिप्ट कार्यों का परीक्षण करने के लिए, आप रन कार्यों में स्थानीय रूप से वर्णित अनुकरण उपकरण का उपयोग कर सकते हैं। इन उपकरणों का उपयोग करने से पहले अपने कोड को संकलित करना महत्वपूर्ण है, इसलिए firebase emulators:start
या firebase functions:shell
चलाने से पहले अपने फ़ंक्शन डायरेक्टरी के अंदर npm run build
चलाना सुनिश्चित करें। वैकल्पिक रूप से, npm run serve
या npm run shell
शॉर्टकट के रूप में चलाएं; ये कमांड बिल्ड को रन करते हैं और फंक्शन शेल को सर्व / स्टार्ट करते हैं।
टाइपस्क्रिप्ट परियोजनाओं के लिए कार्य लॉग
firebase deploy
के दौरान, आपके प्रोजेक्ट के index.ts
index.js
में स्थानांतरित कर दिया जाता है, जिसका अर्थ है कि क्लाउड फ़ंक्शंस लॉग index.js
फ़ाइल से लाइन नंबर आउटपुट करेगा, न कि आपके द्वारा लिखे गए कोड से। आपके लिए index.ts
में संबंधित पथ और लाइन नंबर ढूंढना आसान बनाने के लिए, firebase deploy
functions/lib/index.js.map
बनाता है। आप इस स्रोत मानचित्र का उपयोग अपने पसंदीदा आईडीई में या नोड मॉड्यूल के माध्यम से कर सकते हैं।