Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Cloud Functions için TypeScript kullanın

TypeScript'te işlev yazmayı tercih eden geliştiriciler için Cloud Functions iki tür destek sağlar:

  • Başlangıçta otomatik aktarım için TypeScript projeleri oluşturun ve yapılandırın ( firebase init functions ).
  • Önceden konuşlandırma kancası aracılığıyla, mevcut TypeScript kaynağını konuşlandırma zamanında JavaScript'e aktarın.

Bu kılavuzdaki talimatları izleyerek, mevcut bir JavaScript projesini TypeScript'e taşıyabilir ve kaynak kodunuzu dönüştürmek için önceden konuşlandırma kancası kullanarak işlevleri dağıtmaya devam edebilirsiniz. TypeScript, işlev yazarken vanilya JavaScript'e göre birçok avantaj sunar:

  • TypeScript, vaat yönetimini basitleştirerek async / await gibi en yeni JavaScript özelliklerini destekler
  • Bir Cloud Functions linter, kod yazarken sık karşılaşılan sorunları vurgular
  • Tür güvenliği, konuşlandırılan işlevlerde çalışma zamanı hatalarını önlemenize yardımcı olur

TypeScript'te yeniyseniz, 5 dakika içinde TypeScript'e bakın.

TypeScript ile yeni bir Cloud Functions projesi başlatma

firebase init functions yeni bir dizinde çalıştırın. Araç, projeyi JavaScript veya TypeScript ile oluşturma seçenekleri sunar. Aşağıdaki proje yapısının çıktısını almak için TypeScript'i seçin:

myproject
 +- functions/     # Directory containing all your functions code
      |
      +- package.json  # npm package file describing your Cloud Functions code
      |
      +- tsconfig.json
      |
      +- .eslintrc.js # Optional file if you enabled ESLint
      +- tsconfig.dev.json # Optional file that references .eslintrc.js
      |
      +- src/     # Directory containing TypeScript source
      |   |
      |   +- index.ts  # main source file for your Cloud Functions code
      |
      +- lib/
          |
          +- index.js  # Built/transpiled JavaScript code
          |
          +- index.js.map # Source map for debugging

Başlatma tamamlandıktan sonra, index.ts içindeki numunenin açıklamasını kaldırın ve npm run serve bir "Merhaba Dünya" işlevinin çalıştığını npm run serve .

Mevcut bir TypeScript projesini kullanma

Mevcut bir TypeScript projeniz varsa, kodunuzu Firebase için Cloud Functions'a her dağıttığınızda projenizin aktarıldığından emin olmak için bir önceden dağıtım kancası ekleyebilirsiniz. Düzgün biçimlendirilmiş bir tsconfig.json dosyasına ve bir Firebase projesine ihtiyacınız olacak ve Firebase yapılandırmanızda aşağıdaki değişiklikleri yapmanız gerekecektir:

  1. TypeScript projenizi oluşturmak üzere bir bash betiği eklemek için package.json dosyasını düzenleyin. Örneğin:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  2. Derleme komut dosyasını çalıştırmak üzere bir ön dağıtım kancası eklemek için firebase.json dosyasını düzenleyin. Örneğin:

     {
       "functions": {
         "predeploy": "npm --prefix functions run build",
       }
     }
    

Bu yapılandırmayla, bir firebase deploy --only functions komutu, TypeScript kodunuzu oluşturur ve onu işlev olarak dağıtır.

Mevcut bir JavaScript projesini TypeScript'e taşıma

JavaScript'te başlatıp geliştirdiğiniz mevcut bir Cloud Functions projeniz varsa, bunu TypeScript'e taşıyabilirsiniz. Başlamadan önce bir git kontrol noktası veya başka bir yedekleme oluşturmanız şiddetle tavsiye edilir.

Mevcut bir JavaScript Cloud Functions projesini taşımak için:

  1. Bir git kontrol noktası oluşturun ve mevcut JavaScript kaynak dosyalarınızın kopyalarını kaydedin.
  2. Proje dizininde, firebase init functions çalıştırın ve işlev yazmak için bir dil sorulduğunda TypeScript seçin.
  3. Mevcut package.json dosyasının üzerine yazılıp yazılmayacağı sorulduğunda, mevcut dosyayı saklamak istemediğinizden emin değilseniz Hayır'ı seçin.
  4. functions/src dizinindeki index.ts mevcut kaynak kodunuzla değiştirerek silin.
  5. Başlatma sırasında oluşturulan tsconfig.json dosyasında, derleyici seçeneklerini JavaScript'e izin verecek şekilde ayarlayın: "allowJs": "true" .
  6. Kaydedilmiş package.json dosyanızı functions dizinine kopyalayın ve "main" i "lib/index.js" olarak ayarlamak için düzenleyin.
  7. Ayrıca package.json , aşağıdaki gibi TypeScript için bir yapı betiği ekleyin:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  8. npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser çalıştırarak dev bağımlılığı olarak "typescript" ekleyin.

  9. Tüm bağımlılıklar için npm install --save @types/<dependency> çalıştırın.

  10. Kaynak kodunu .js'den .ts'ye istediğiniz gibi yeniden yazın.

TypeScript işlevlerini taklit etme

TypeScript işlevlerini yerel olarak test etmek için, İşlevleri yerel olarak çalıştır bölümünde açıklanan öykünme araçlarını kullanabilirsiniz. Bu araçları kullanmadan önce kodunuzu derlemeniz önemlidir, bu nedenle firebase emulators:start çalıştırmadan önce işlevler dizininizde npm run build çalıştırdığınızdan emin olun firebase emulators:start veya firebase functions:shell . Alternatif olarak, çalışma npm run serve veya npm run shell kısayol olarak; bu komutlar hem derlemeyi çalıştırır hem de işlevler kabuğunu sunar / başlatır.

TypeScript projeleri için işlev günlükleri

firebase deploy sırasında, projenizin index.ts dosyası index.js aktarılır, yani Cloud Functions günlüğünün yazdığınız koddan değil, index.js dosyasından satır numaralarını çıkaracağı anlamına gelir. index.ts içindeki ilgili yolları ve satır numaralarını bulmanızı kolaylaştırmak için firebase deploy , functions/lib/index.js.map firebase deploy oluşturur. Bu kaynak haritayı tercih ettiğiniz IDE'de veya bir düğüm modülü aracılığıyla kullanabilirsiniz.