Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Bulut İşlevleri için TypeScript kullanın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

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

  • Başlatma sırasında 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 dağıtım zamanında mevcut TypeScript kaynağını JavaScript'e aktarın.

Bu kılavuzdaki talimatları izleyerek, mevcut bir JavaScript projesini TypeScript'e geçirebilir ve kaynak kodunuzu aktarmak için bir dağıtım öncesi kanca kullanarak işlevleri dağıtmaya devam edebilirsiniz. TypeScript, işlev yazarken Vanilla JavaScript'e göre birçok avantaj sunar:

  • TypeScript, async/await gibi en yeni JavaScript özelliklerini destekleyerek söz yönetimini basitleştirir
  • Bir Cloud Functions linter, kodlama yaparken sık karşılaşılan sorunları vurgular
  • Tür güvenliği, dağıtılan işlevlerde çalışma zamanı hatalarından kaçınmanıza yardımcı olur

TypeScript'te yeniyseniz, 5 dakikada TypeScript'e bakın.

TypeScript ile yeni bir Bulut İşlevleri 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'deki örneğin yorumunu kaldırın ve npm run serve ve bir "Merhaba Dünya" işlevinin iş başında olduğunu görün.

Mevcut bir TypeScript projesini kullanma

Mevcut bir TypeScript projeniz varsa, kodunuzu Cloud Functions for Firebase'e her dağıttığınızda projenizin aktarıldığından emin olmak için bir dağıtım öncesi kanca 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 gerekecek:

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

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  2. Derleme komut dosyasını çalıştırmak için bir ön dağıtım kancası eklemek için firebase.json 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şlevler olarak dağıtır.

Mevcut bir JavaScript projesini TypeScript'e geçirme

JavaScript'te başlattığınız ve geliştirdiğiniz mevcut bir Bulut İşlevleri projeniz varsa, onu TypeScript'e geçirebilirsiniz. Başlamadan önce bir git kontrol noktası veya başka bir yedek oluşturmanız şiddetle tavsiye edilir.

Mevcut bir JavaScript Bulut İşlevleri 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 fonksiyon yazmak için bir dil istendiğinde TypeScript seçin.
  3. Mevcut package.json dosyasının üzerine yazıp yazmayacağınız 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" "lib/index.js" olarak ayarlamak için düzenleyin.
  7. Ayrıca package.json içinde, TypeScript için aşağıdakine benzer bir derleme komut dosyası 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 "typescript" i geliştirici bağımlılığı olarak 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 veya firebase functions:shell çalıştırmadan önce işlevler dizininizde npm run build çalıştırdığınızdan emin olun. Alternatif olarak, kısayol olarak npm run serve veya npm run shell ; bu komutlar hem derlemeyi çalıştırır hem de işlevlerin kabuğunu sunar/başlar.

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

firebase deploy sırasında projenizin index.ts dosyası index.js dosyasına aktarılır, yani Bulut İşlevleri günlüğü, yazdığınız kodu değil, index.js dosyasındaki satır numaralarını verir. index.ts dosyasında karşılık gelen yolları ve satır numaralarını bulmanızı kolaylaştırmak için, index.ts firebase deploy functions/lib/index.js.map oluşturur. Bu kaynak haritayı tercih ettiğiniz IDE'de veya bir düğüm modülü aracılığıyla kullanabilirsiniz.