Firebase is back at Google I/O on May 10! Register now

निर्भरता को संभालना

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

एक फ़ंक्शन को बाहरी Node.js मॉड्यूल के साथ-साथ स्थानीय डेटा का उपयोग करने की अनुमति है। Node.js में निर्भरताएँ npm के साथ प्रबंधित की जाती हैं और package.json नामक मेटाडेटा फ़ाइल में व्यक्त की जाती हैं। क्लाउड फ़ंक्शंस नोड.जेएस रनटाइम आमतौर पर एनपीएम या यार्न का उपयोग करके स्थापित करने का समर्थन करते हैं।

अपने फ़ंक्शन के लिए निर्भरता निर्दिष्ट करने के लिए, इसे अपनी package.json फ़ाइल में जोड़ें।

इस उदाहरण में, एक निर्भरता package.json फ़ाइल में सूचीबद्ध है:

{
  "dependencies": {
    "escape-html": "^1.0.3"
  }
}

निर्भरता तब फ़ंक्शन में आयात की जाती है:

जावास्क्रिप्ट

const escapeHtml = require('escape-html');

// Return a greeting with the input HTML-escaped.
exports.hello = functions.https.onRequest((req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
});

टाइपप्रति

import * as escapeHtml from 'escape-html';

// Return a greeting with the input HTML-escaped.
export let hello = functions.https.onRequest((req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
}

स्थानीय Node.js मॉड्यूल सहित

आप अपने कार्य के भाग के रूप में स्थानीय Node.js मॉड्यूल भी शामिल कर सकते हैं। आप file: उपसर्ग का उपयोग करके package.json में अपने मॉड्यूल को घोषित करके इसे प्राप्त कर सकते हैं। निम्नलिखित उदाहरण में, mymodule आपके मॉड्यूल नाम को संदर्भित करता है और mymoduledir आपके मॉड्यूल वाली निर्देशिका है:

{
  "dependencies": {
    "mymodule": "file:mymoduledir"
  }
}

इस स्थानीय मॉड्यूल के लिए कोड आपके फ़ंक्शन की रूट निर्देशिका में node_modules फ़ोल्डर के अलावा कहीं और संग्रहित किया जाना चाहिए।

टाइपस्क्रिप्ट के लिए अतिरिक्त कदम

टाइपस्क्रिप्ट आपकी सबसे अधिक मदद करता है जब आप उन पुस्तकालयों का उपयोग करते हैं जिनमें प्रकार की जानकारी होती है। यह टाइपस्क्रिप्ट को सिंटैक्स त्रुटियों को पकड़ने देता है और संपादकों को आपको बेहतर स्वत: पूर्ण सुझाव देने देता है। कुछ पुस्तकालय, जैसे कि firebase-admin और firebase-functions , टाइपस्क्रिप्ट परिभाषाओं के साथ जहाज शामिल हैं।

कई पुस्तकालय अपनी टाइपस्क्रिप्ट परिभाषा प्रदान नहीं करते हैं। निश्चित रूप से टाइप की गई परियोजना सबसे लोकप्रिय नोड पुस्तकालयों के लिए समुदाय-अनुरक्षित परिभाषाएँ प्रदान करती है। निश्चित रूप से टाइप इन परिभाषाओं को उसी एनपीएम पैकेज नाम के तहत प्रकाशित करता है, लेकिन "@types" संगठन के अंदर। उदाहरण के लिए, आप निम्न के साथ uuid पुस्तकालय के लिए प्रकार की जानकारी स्थापित कर सकते हैं:

npm install @types/uuid

जैसा कि आप टाइपस्क्रिप्ट से अधिक परिचित हो जाते हैं, आप स्वयं को दोनों स्थापनाओं का संयोजन करते हुए पा सकते हैं:

npm install uuid @types/uuid

टाइप डिपेंडेंसी उसी तरह की होनी चाहिए जैसे लाइब्रेरी डिपेंडेंसी। उदाहरण के लिए, आपको uuid सामान्य निर्भरता के रूप में और @types/uuid देव निर्भरता या सहकर्मी निर्भरता के रूप में नहीं सहेजना चाहिए।

लोड हो रहा है Node.js मॉड्यूल

आपके द्वारा स्थापित किसी भी Node.js मॉड्यूल को लोड करने के लिए Node.js require() फ़ंक्शन का उपयोग करें। आप अपने फ़ंक्शन के साथ तैनात स्थानीय फ़ाइलों को आयात करने के लिए require() फ़ंक्शन का भी उपयोग कर सकते हैं।

यदि आप टाइपस्क्रिप्ट में फ़ंक्शन लिख रहे हैं, तो import स्टेटमेंट का उसी तरह उपयोग करें जैसे आपने स्थापित किए गए किसी भी Node.js मॉड्यूल को लोड करने के लिए किया है।

निजी मॉड्यूल का उपयोग करना

आप फ़ंक्शन की निर्देशिका में .npmrc फ़ाइल में रजिस्ट्री के साथ प्रमाणीकरण के लिए सेटिंग्स प्रदान करके एक निजी npm मॉड्यूल का उपयोग कर सकते हैं।

विरूपण साक्ष्य रजिस्ट्री से निजी मॉड्यूल

एक विरूपण साक्ष्य रजिस्ट्री Node.js पैकेज रिपॉजिटरी आपके कार्य के लिए निजी मॉड्यूल की मेजबानी कर सकती है। क्लाउड फ़ंक्शंस पर परिनियोजन करते समय, निर्माण प्रक्रिया स्वचालित रूप से क्लाउड बिल्ड सेवा खाते के लिए आर्टिफैक्ट रजिस्ट्री प्रमाण-पत्र उत्पन्न करेगी। आपको केवल अपने .npmrc में आर्टिफैक्ट रजिस्ट्री रिपॉजिटरी को अतिरिक्त प्रमाण-पत्र उत्पन्न किए बिना सूचीबद्ध करने की आवश्यकता है। उदाहरण के लिए:

@SCOPE:registry=https://REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME
//REGION_ID-npm.pkg.dev/PROJECT_ID/REPOSITORY_NAME:always-auth=true

अन्य रिपॉजिटरी से निजी मॉड्यूल

एनपीएम दस्तावेज बताता है कि कस्टम रीड-ओनली एक्सेस टोकन कैसे बनाएं। हम होम डायरेक्टरी में बनाई गई .npmrc फ़ाइल का उपयोग करने को हतोत्साहित करते हैं क्योंकि इसमें रीड-राइट टोकन होता है। परिनियोजन के दौरान लिखने की अनुमति आवश्यक नहीं है, और इससे सुरक्षा जोखिम हो सकता है।

यदि आप निजी रिपॉजिटरी का उपयोग नहीं कर रहे हैं तो .npmrc फ़ाइल को शामिल न करें, क्योंकि यह आपके कार्यों के लिए परिनियोजन समय बढ़ा सकती है।

फ़ाइल फ़ारमैट

यदि आप कस्टम प्रमाणीकरण टोकन सेट करने के लिए .npmrc फ़ाइल का उपयोग कर रहे हैं, तो इसमें नीचे दिखाई गई पंक्ति शामिल होनी चाहिए। <YOUR_AUTH_TOKEN> अपने NPM-प्रदत्त प्रमाणीकरण टोकन से बदलें।

//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>