TypeScript'te işlev yazmayı tercih eden geliştiriciler, Cloud Functions iki tür destek sağlar:
- Başlatma sırasında (
firebase init functions
) otomatik çeviri için TypeScript projeleri oluşturun ve yapılandırın. - Önceden dağıtım kancası aracılığıyla, dağıtım sırasında mevcut TypeScript kaynağını JavaScript'e aktarın.
Bu kılavuzdaki talimatları uygulayarak mevcut bir JavaScript projesini TypeScript'e yükleyin ve işlevleri kaynak kodunuzu çevirmek için önceden dağıtım kancasını kullanın. TypeScript, normal JavaScript'e göre birçok avantaj sunar fonksiyon yazarken:
- TypeScript, taahhüt yönetimini basitleştiren eşzamansız/bekle gibi en son JavaScript özelliklerini destekler.
- Cloud Functions aracı, siz kodlama yaparken karşılaşılan yaygın sorunları vurgular
- Tür güvenliği, dağıtılan işlevlerde çalışma zamanı hatalarından kaçınmanıza yardımcı olur
TypeScript'i kullanmaya yeni başladıysanız 5 dakika içinde TypeScript başlıklı makaleyi inceleyin.
TypeScript ile yeni bir Cloud Functions projesi başlatma
firebase init functions
dosyasını yeni bir dizinde çalıştırın. Bu araç size, Google Dokümanlar'da
JavaScript veya TypeScript kullanarak projede. Şu çıktıyı almak için TypeScript'i seçin:
şu proje yapısını uygulayın:
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 işlemi tamamlandıktan sonra index.ts dosyasında örneğin açıklamasını kaldırıp şu komutu çalıştırın:
"Hello World" ifadesini görmek için npm run serve
işlevini
anlatacağım.
Mevcut bir TypeScript projesini kullanarak
Mevcut bir TypeScript projeniz varsa önceden dağıtım kancasını
kodunuzu
Cloud Functions for Firebase Şunlar gerekir:
düzgün şekilde oluşturulmuş bir tsconfig.json
dosyası ve bir Firebase projesi ile
aşağıdaki değişiklikleri yapın:
TypeScript projenizi oluşturmak üzere bash komut dosyası eklemek için
package.json
öğesini düzenleyin. Örneğin:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
Derleme komut dosyasını çalıştırmak üzere önceden dağıtım kancası eklemek için
firebase.json
öğesini düzenleyin. Örneğin:{ "functions": { "predeploy": "npm --prefix functions run build", } }
Bu yapılandırmada, bir firebase deploy --only functions
komutu
sizin TypeScript kodunuzu oluşturur ve fonksiyon olarak dağıtır.
Mevcut bir JavaScript projesini TypeScript'e taşıma
Başlattığınız mevcut bir Cloud Functions projeniz varsa ve JavaScript ile geliştirildiğini düşünürseniz, bu örneği TypeScript'i seçin. Git kontrol noktası veya yedeklemeyi deneyin.
Mevcut bir JavaScript Cloud Functions projesini taşımak için:
- Bir git kontrol noktası oluşturun ve mevcut JavaScript kaynak dosyalarınızın kopyalarını kaydedin.
- Proje dizininde, işlev yazmak için dil istendiğinde
firebase init functions
komutunu çalıştırın veTypeScript
öğesini seçin. - Mevcut
package.json
dosyasının üzerine yazılıp yazılmayacağı sorulduğunda, mevcut dosyayı tutmak istemediğinizden emin değilseniz Hayır'ı seçin. functions/src
dizinindekiindex.ts
dosyasını mevcut kaynak kodunuzla değiştirerek silin.- Başlatma sırasında oluşturulan
tsconfig.json
dosyasında derleyici seçeneklerini JavaScript'e izin verecek şekilde ayarlayın:"allowJs": true
. - Kaydettiğiniz
package.json
dosyasınıfunctions
dizinine kopyalayın ve"main"
dosyasını"lib/index.js"
olarak ayarlayacak şekilde düzenleyin. Ayrıca,
package.json
içinde, TypeScript için aşağıdaki gibi bir derleme komut dosyası ekleyin:{ "name": "functions", "scripts": { "build": "npm run lint && tsc" } ...
npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser
çalıştırarak"typescript"
öğesini geliştirici bağımlılığı olarak ekleyin.Tüm bağımlılıklar için
npm install --save @types/<dependency>
komutunu çalıştırın.Kaynak kodunu .js'den .ts'ye istediğiniz şekilde yeniden yazın.
TypeScript işlevleri emülasyonu
TypeScript işlevlerini yerel olarak test etmek için aşağıda açıklanan emülasyon araçlarını kullanabilirsiniz:
İşlevleri yerel olarak çalıştırma konusunu inceleyin. Bu nedenle
bu araçları kullanmadan önce kodunuzu derleyin. Bu nedenle, npm run build
komutunu çalıştırdığınızdan emin olun.
firebase emulators:start
veya
firebase functions:shell
. Alternatif olarak npm run serve
komutunu çalıştırın veya
Kısayol olarak npm run shell
; hem derlemeyi çalıştırır hem de
fonksiyon kabuğunu sunma/başlatma.
TypeScript projeleri için işlev günlükleri
firebase deploy
sırasında projenizin index.ts
öğesi index.js
,
Yani Cloud Functions günlüğü
index.js
dosyası (yazdığınız kodu değil) girmeniz gerekir. Verilerinizi bulmanızı kolaylaştırmak için
index.ts
içerisindeki karşılık gelen yollar ve satır numaraları,
firebase deploy
, functions/lib/index.js.map
öğesini oluşturur. Bu kaynağı kullanabilirsiniz
istediğiniz IDE'de veya düğüm modülü aracılığıyla eşleyebilirsiniz.