Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Bağımlılıkları işleme

Bir işlevin yerel verilerin yanı sıra harici Node.js modüllerini kullanmasına izin verilir. Node.js içinde bağımlılıklar ile yönetilmektedir NPM ve adında bir meta veri dosyası olarak ifade package.json . Bulut Fonksiyonlar node.js çalışma zamanları genelde kullanarak yükleme desteklemek UÖM'sini veya iplik .

Senin fonksiyon için bir bağımlılık belirtmek için, eklemek package.json dosyası.

Bu örnekte, bir bağımlılık listelenen package.json dosyası:

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

Bağımlılık daha sonra işleve aktarılır:

JavaScript

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')}!`);
}

Yerel Node.js modülleri dahil

Ayrıca, işlevinizin bir parçası olarak yerel Node.js modüllerini de dahil edebilirsiniz. İçeri Modülünüzü bildirerek bunu başarabilirsiniz package.json kullanarak file: önek . Aşağıdaki örnekte, mymodule sizin modül adını gösterir ve mymoduledir modülü içeren dizinidir:

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

Bu yerel modül için kod başka yerlerdeki saklanmalıdır node_modules senin işlevin kök dizin içinde klasör.

TypeScript için ek adımlar

TypeScript, tür bilgilerine sahip kitaplıkları kullandığınızda size en çok yardımcı olur. Bu, TypeScript'in sözdizimi hatalarını yakalamasına ve editörlerin size daha iyi otomatik tamamlama önerileri sunmasına olanak tanır. Gibi bazı kütüphaneler, firebase-admin ve firebase-functions typescript tanımlarla, geminin dahil.

Birçok kitaplık kendi TypeScript tanımını sağlamaz. DefinitelyTyped projesi en popüler düğüm kitaplıkları için topluluk bakımlı tanımlarını sağlar. KesinlikleTyped, bu tanımları aynı NPM paket adı altında, ancak "@types" organizasyonu içinde yayınlar. Örneğin, türü bilgilerini yükleyebilirsiniz uuid aşağıdaki kütüphanede:

npm install @types/uuid

TypeScript'e daha aşina hale geldikçe, kendinizi her iki kurulumu da birleştirirken bulabilirsiniz:

npm install uuid @types/uuid

Tür bağımlılıkları, kitaplık bağımlılığıyla aynı türde olmalıdır. Örneğin, tasarruf olmamalı uuid normal bağımlılık gibi @types/uuid bir dev bağımlılık veya akran bağımlılık olarak.

Node.js modüllerini yükleme

Node.js kullanın require() herhangi node.js yüklediğiniz modülü yüklemek için işlevini. Ayrıca kullanabilirsiniz require() Eğer fonksiyonu yanında dağıtmak yerel dosyaları almak için işlevini.

Eğer daktilo işlevleri yazıyorsanız, kullanmak import herhangi node.js yüklediğiniz modülü yüklemek için aynı şekilde açıklama.

Özel modülleri kullanma

Bir kullanmak için özel npm modülü , bir de npm kayıt için kimlik bilgilerini (doğrulama anahtarı) sağlamalıdır .npmrc işlevin dizininde yer alan dosyada. Npm dokümantasyon özel salt okunur erişim belirteçleri oluşturmak açıklar. Biz kullanarak vazgeçirmek .npmrc bir okuma-yazma belirteci içerdiğinden ev dizininde oluşturulan dosyayı. Dağıtım sırasında yazma izinleri gerekli değildir ve güvenlik riski oluşturabilir.

Dahil etmeyin .npmrc sizin işlevleri için dağıtım süresini artırabilir gibi, özel depoları kullanmıyorsanız dosya.

Dosya formatı

Bir kullanıyorsanız .npmrc özel bir doğrulama anahtarı ayarlamak için dosyayı, aşağıda gösterilen çizgi içermelidir. Değiştir <YOUR_AUTH_TOKEN> sizin NPM tarafından sağlanan kimlik doğrulama koduyla.

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