Catch up on everything we announced at this year's Firebase Summit. Learn more

مدیریت وابستگی ها

یک تابع مجاز به استفاده از ماژول های Node.js خارجی و همچنین داده های محلی است. وابستگی در Node.js با مدیریت NPM و بیان شده در یک فایل فوق به نام package.json . ابر توابع Node.js و زمان های اجرا به طور کلی حمایت نصب با استفاده از NPM یا نخ .

برای مشخص کردن یک وابستگی برای عملکرد خود را، آن را به خود را اضافه کنید 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')}!`);
});

TypeScript

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 محلی را به عنوان بخشی از عملکرد خود وارد کنید. شما می توانید این را با اعلام ماژول خود را در رسیدن به package.json با استفاده از file: پیشوند . در مثال زیر، mymodule اشاره به نام ماژول خود را و mymoduledir دایرکتوری حاوی ماژول شما است:

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

کد برای این ماژول محلی باید ذخیره شود جایی غیر از node_modules پوشه در دایرکتوری ریشه تابع شما است.

مراحل اضافی برای TypeScript

وقتی از کتابخانه هایی استفاده می کنید که دارای اطلاعات نوع هستند ، TypeScript بیشتر به شما کمک می کند. این به TypeScript اجازه می دهد خطاهای نحوی را بگیرد و به ویرایشگران اجازه می دهد پیشنهادات تکمیل خودکار بهتری به شما بدهند. بعضی از کتابخانه ها، مانند firebase-admin و firebase-functions ، کشتی با تعاریف تایپاسکریپت گنجانده شده است.

بسیاری از کتابخانه ها تعریف TypeScript خود را ارائه نمی دهند. DefinitelyTyped پروژه تعاریف جامعه حفظ برای اکثر کتابخانه گره محبوب فراهم می کند. DefinitelyTyped این تعاریف را با همان نام بسته NPM ، اما در داخل سازمان "types" منتشر می کند. به عنوان مثال، شما می توانید اطلاعات نوع برای نصب uuid کتابخانه با موارد زیر است:

npm install @types/uuid

با آشنایی بیشتر با TypeScript ، ممکن است خود را با ترکیب هر دو نصب آشنا کنید:

npm install uuid @types/uuid

وابستگی های نوع باید مانند وابستگی به کتابخانه باشد. برای مثال، شما باید را نجات دهد uuid به عنوان یک وابستگی نرمال و @types/uuid به عنوان یک وابستگی توسعه تمدن یا وابستگی همکار.

بارگذاری ماژول های Node.js

استفاده از Node.js و require() تابع برای بارگذاری هر Node.js و ماژول شما نصب شده است. شما همچنین می توانید با استفاده از require() تابع به وارد کردن فایل های محلی شما در کنار عملکرد خود را گسترش دهید.

اگر شما به نوشتن توابع در تایپاسکریپت، استفاده از import بیانیه در همان راه برای بارگذاری هر Node.js و ماژول شما نصب شده است.

استفاده از ماژول های خصوصی

به منظور استفاده از یک ماژول NPM خصوصی ، شما باید اعتبار (تایید رمز) برای رجیستری NPM در ارائه .npmrc فایل واقع در دایرکتوری تابع است. مستندات NPM توضیح می دهد که چگونه برای ایجاد سفارشی فقط خواندنی نشانه های دسترسی. ما دلسرد با استفاده از .npmrc فایل در دایرکتوری خانگی ایجاد، زیرا حاوی یک نشانه خواندن و نوشتن. مجوزهای نوشتن در حین استقرار مورد نیاز نیست و می تواند خطری امنیتی ایجاد کند.

آیا شامل نمی .npmrc فایل اگر شما با استفاده از مخازن خصوصی، به عنوان آن می توانید زمان استقرار برای توابع خود را افزایش می دهد.

فرمت فایل

اگر شما با استفاده از .npmrc فایل به راه سفارشی تایید رمز، آن را باید شامل خط زیر نشان داده شده. جایگزین <YOUR_AUTH_TOKEN> با NPM ارائه کد تأیید اعتبار خود را.

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