Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Menangani dependensi

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Sebuah fungsi diperbolehkan untuk menggunakan modul Node.js eksternal serta data lokal. Dependensi di Node.js dikelola dengan npm dan diekspresikan dalam file metadata bernama package.json . Runtime Cloud Functions Node.js umumnya mendukung penginstalan menggunakan npm atau yarn .

Untuk menentukan ketergantungan fungsi Anda, tambahkan ke file package.json Anda.

Dalam contoh ini, dependensi tercantum dalam file package.json :

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

Ketergantungan kemudian diimpor dalam fungsi:

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

Termasuk modul Node.js lokal

Anda juga dapat menyertakan modul Node.js lokal sebagai bagian dari fungsi Anda. Anda dapat mencapai ini dengan mendeklarasikan modul Anda di package.json menggunakan file: prefix . Dalam contoh berikut, mymodule merujuk ke nama modul Anda dan mymoduledir adalah direktori yang berisi modul Anda:

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

Kode untuk modul lokal ini harus disimpan di tempat lain selain folder node_modules di dalam direktori root fungsi Anda.

Langkah tambahan untuk TypeScript

TypeScript sangat membantu Anda saat menggunakan pustaka yang memiliki informasi tipe. Ini memungkinkan TypeScript menangkap kesalahan sintaks dan memungkinkan editor memberi Anda saran pelengkapan otomatis yang lebih baik. Beberapa library, seperti firebase-admin dan firebase-functions , disertakan dengan definisi TypeScript.

Banyak perpustakaan tidak menyediakan definisi TypeScript mereka sendiri. Proyek PastiTyped menyediakan definisi yang dikelola komunitas untuk pustaka simpul paling populer. PastiTyped menerbitkan definisi ini di bawah nama paket NPM yang sama, tetapi di dalam organisasi "@types". Misalnya, Anda dapat menginstal informasi tipe untuk pustaka uuid dengan yang berikut ini:

npm install @types/uuid

Saat Anda menjadi lebih akrab dengan TypeScript, Anda mungkin menemukan diri Anda menggabungkan kedua instalasi:

npm install uuid @types/uuid

Ketergantungan jenis harus sama dengan ketergantungan perpustakaan. Misalnya, Anda tidak boleh menyimpan uuid sebagai dependensi normal dan @types/uuid sebagai dependensi dev atau dependensi rekan.

Memuat modul Node.js

Gunakan fungsi Node.js require() untuk memuat modul Node.js yang telah Anda instal. Anda juga dapat menggunakan fungsi require() untuk mengimpor file lokal yang Anda terapkan bersama fungsi Anda.

Jika Anda menulis fungsi dalam TypeScript, gunakan pernyataan import dengan cara yang sama untuk memuat modul Node.js yang telah Anda instal.

Menggunakan modul pribadi

Anda dapat menggunakan modul npm pribadi dengan menyediakan pengaturan untuk otentikasi dengan registri dalam file .npmrc di direktori fungsi.

Modul pribadi dari Artifact Registry

Repositori paket Artifact Registry Node.js dapat meng-host modul pribadi untuk fungsi Anda. Saat menerapkan ke Cloud Functions, proses build akan secara otomatis menghasilkan kredensial Artifact Registry untuk akun layanan Cloud Build . Anda hanya perlu membuat daftar repositori Artifact Registry di .npmrc Anda tanpa membuat kredensial tambahan. Sebagai contoh:

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

Modul pribadi dari repositori lain

Dokumentasi npm menjelaskan cara membuat token akses baca-saja khusus. Kami tidak menyarankan penggunaan file .npmrc yang dibuat di direktori home karena berisi token baca-tulis. Izin menulis tidak diperlukan selama penerapan, dan dapat menimbulkan risiko keamanan.

Jangan sertakan file .npmrc jika Anda tidak menggunakan repositori pribadi, karena dapat meningkatkan waktu penerapan untuk fungsi Anda.

Format berkas

Jika Anda menggunakan file .npmrc untuk menyetel token autentikasi khusus, itu harus menyertakan baris yang ditunjukkan di bawah ini. Ganti <YOUR_AUTH_TOKEN> dengan token autentikasi yang disediakan NPM.

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