package.json
بیان می شوند. زمان اجرا توابع Cloud Node.js معمولاً از نصب با استفاده از npm یا yarn پشتیبانی میکند. برای تعیین یک وابستگی برای تابع خود، آن را به فایل 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:
prefix به این هدف برسید. در مثال زیر، mymodule
به نام ماژول شما اشاره دارد و mymoduledir
دایرکتوری حاوی ماژول شما است:
{ "dependencies": { "mymodule": "file:mymoduledir" } }
کد این ماژول محلی باید در جایی غیر از پوشه node_modules
در دایرکتوری ریشه تابع شما ذخیره شود.
مراحل اضافی برای TypeScript
تایپ اسکریپت زمانی که از کتابخانه هایی که اطلاعات نوع دارند استفاده می کنید بیشترین کمک را به شما می کند. این به TypeScript اجازه می دهد تا خطاهای نحوی را شناسایی کند و به ویرایشگرها امکان می دهد پیشنهادهای تکمیل خودکار بهتری را به شما ارائه دهند. برخی از کتابخانهها، مانند firebase-admin
و firebase-functions
، با تعاریف TypeScript ارائه میشوند.
بسیاری از کتابخانه ها تعریف TypeScript خود را ارائه نمی کنند. پروژه DefinitelyTyped تعاریفی را برای محبوب ترین کتابخانه های گره ارائه می دهد. DefinitelyTyped این تعاریف را تحت همان نام بسته NPM، اما در داخل سازمان "@types" منتشر می کند. به عنوان مثال، می توانید اطلاعات نوع را برای کتابخانه uuid
با موارد زیر نصب کنید:
npm install @types/uuid
همانطور که با TypeScript بیشتر آشنا می شوید، ممکن است متوجه شوید که هر دو نصب را با هم ترکیب می کنید:
npm install uuid @types/uuid
نوع وابستگی باید مانند وابستگی کتابخانه باشد. به عنوان مثال، شما نباید uuid
را به عنوان یک وابستگی معمولی و @types/uuid
را به عنوان وابستگی به dev یا وابستگی peer ذخیره کنید.
در حال بارگیری ماژول های Node.js
برای بارگذاری هر ماژول Node.js که نصب کرده اید از تابع Node.js require()
استفاده کنید. همچنین می توانید از تابع require()
برای وارد کردن فایل های محلی که در کنار تابع خود مستقر می کنید استفاده کنید.
import
به همین ترتیب برای بارگذاری هر ماژول Node.js که نصب کرده اید استفاده کنید.استفاده از ماژول های خصوصی
می توانید با ارائه تنظیماتی برای احراز هویت با رجیستری در یک فایل .npmrc
. در دایرکتوری تابع از یک ماژول npm خصوصی استفاده کنید.
ماژول های خصوصی از Artifact Registry
مخزن بسته Artifact Registry Node.js می تواند ماژول های خصوصی را برای عملکرد شما میزبانی کند. هنگام استقرار در توابع Cloud، فرآیند ساخت به طور خودکار اعتبار رجیستری Artifact را برای حساب سرویس Cloud Build ایجاد می کند . شما فقط باید مخزن Artifact Registry را در .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
ماژول های خصوصی از مخازن دیگر
مستندات npm نحوه ایجاد توکن های دسترسی فقط خواندنی سفارشی را توضیح می دهد. ما از استفاده از فایل .npmrc
. ایجاد شده در فهرست اصلی خودداری می کنیم زیرا حاوی نشانه خواندن-نوشتن است. مجوز نوشتن در طول استقرار مورد نیاز نیست و ممکن است خطر امنیتی ایجاد کند.
اگر از مخازن خصوصی استفاده نمی کنید، فایل .npmrc
. را وارد نکنید، زیرا می تواند زمان استقرار عملکردهای شما را افزایش دهد.
فرمت فایل
اگر از یک فایل .npmrc
. برای تنظیم یک نشانه تأیید سفارشی استفاده میکنید، باید شامل خط زیر باشد. رمز احراز هویت ارائه شده توسط NPM خود را جایگزین <YOUR_AUTH_TOKEN>
کنید.
//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>