获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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'deki bağımlılıklar npm ile yönetilir ve package.json adlı bir meta veri dosyasında ifade edilir. Cloud Functions Node.js çalışma zamanları genellikle npm veya thread kullanılarak yüklemeyi destekler.

İşleviniz için bir bağımlılık belirtmek üzere bunu package.json dosyanıza ekleyin.

Bu örnekte, package.json dosyasında bir bağımlılık listelenmiştir:

{
  "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. Bunu, prefix file: kullanarak package.json modülünüzü bildirerek başarabilirsiniz. Aşağıdaki örnekte, mymodule , modül adınızı ifade eder ve mymoduledir , modülünüzü içeren dizindir:

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

Bu yerel modülün kodu, işlevinizin kök dizinindeki node_modules klasöründen başka bir yerde saklanmalıdı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. firebase-admin ve firebase-functions gibi bazı kitaplıklar TypeScript tanımları dahil olarak gönderilir.

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

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, uuid normal bir bağımlılık olarak ve @types/uuid bir geliştirici bağımlılığı veya eş bağımlılığı olarak kaydetmemelisiniz.

Node.js modüllerini yükleme

Yüklediğiniz herhangi bir Node.js modülünü yüklemek için Node.js require() işlevini kullanın. Ayrıca, işlevinizle birlikte dağıttığınız yerel dosyaları içe aktarmak için require() işlevini de kullanabilirsiniz.

TypeScript'te işlevler yazıyorsanız, yüklediğiniz herhangi bir Node.js modülünü yüklemek için import ifadesini aynı şekilde kullanın.

Özel modülleri kullanma

İşlev dizinindeki bir .npmrc dosyasında kayıt defteri ile kimlik doğrulama ayarları sağlayarak özel bir npm modülü kullanabilirsiniz.

Artifact Registry'den özel modüller

Artifact Registry Node.js paket deposu , işleviniz için özel modüller barındırabilir. Cloud Functions'a dağıtırken, derleme işlemi Cloud Build hizmet hesabı için Artifact Registry kimlik bilgilerini otomatik olarak oluşturur. Ek kimlik bilgileri oluşturmadan yalnızca Artifact Registry deposunu .npmrc dosyanızda listelemeniz gerekir. Örneğin:

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

Diğer depolardan özel modüller

npm belgeleri , özel salt okunur erişim belirteçlerinin nasıl oluşturulacağını açıklar. Bir okuma-yazma belirteci içerdiğinden, ana dizinde oluşturulan .npmrc dosyasının kullanılmasını önermiyoruz. Dağıtım sırasında yazma izinleri gerekli değildir ve güvenlik riski oluşturabilir.

İşlevlerinizin dağıtım süresini artırabileceğinden, özel depolar kullanmıyorsanız .npmrc dosyasını dahil etmeyin.

Dosya formatı

Özel bir kimlik doğrulama belirteci ayarlamak için bir .npmrc dosyası kullanıyorsanız, aşağıda gösterilen satırı içermelidir. <YOUR_AUTH_TOKEN> NPM tarafından sağlanan kimlik doğrulama belirtecinizle değiştirin.

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