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 dizini içindeki 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ürden 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.
import
ifadesini aynı şekilde kullanın.Özel modülleri kullanma
İşlev dizinindeki bir .npmrc
dosyasında kayıt defteriyle 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, oluşturma 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
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 auth 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>