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 transpilasyon için TypeScript projeleri oluşturun ve yapılandırın (
firebase init functions
). - Mevcut TypeScript kaynağını konuşlandırma zamanında bir ön dağıtım kancası aracılığıyla JavaScript'e aktarın.
Bu kılavuzdaki talimatları izleyerek, mevcut bir JavaScript projesini TypeScript'e taşıyabilir ve kaynak kodunuzu aktarmak için bir ön dağıtım kancası kullanarak işlevleri dağıtmaya devam edebilirsiniz. TypeScript, işlevleri yazarken normal JavaScript'e göre birçok avantaj sunar:
- TypeScript, zaman uyumsuz/bekliyor gibi en son JavaScript özelliklerini destekleyerek söz yönetimini basitleştirir
- Bir Cloud Functions linter, siz kodlama yaparken sık karşılaşılan sorunları vurgular
- Tip 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 Cloud Functions projesi başlatılıyor
firebase init functions
yeni bir dizinde çalıştırın. Araç size 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 açıklamasını kaldırın ve bir "Merhaba Dünya" işlevini çalışırken görmek için npm run serve
komutunu çalıştı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 ön 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 gerekecek:
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" } ...
Derleme betiğini ç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şlevler 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, onu 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:
- Bir git kontrol noktası oluşturun ve mevcut JavaScript kaynak dosyalarınızın kopyalarını kaydedin.
- Proje dizininde,
firebase init functions
çalıştırın ve yazma işlevleri için bir dil istendiğindeTypeScript
seçin. - 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. -
functions/src
dizinindekiindex.ts
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
. - Kaydedilen
package.json
dosyanızıfunctions
dizinine kopyalayın ve"main"
"lib/index.js"
olarak ayarlamak için düzenleyin. Ayrıca
package.json
, TypeScript için aşağıdaki gibi bir derleme betiği 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"
geliştirici bağımlılığı olarak ekleyin.Tüm bağımlılıklar için
npm install --save @types/<dependency>
çalıştırın.Kaynak kodunu .js'den .ts'ye istediğiniz gibi yeniden yazın.
TypeScript işlevlerini öykünme
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 functions dizininizin içinde npm run build
komutunu çalıştırdığınızdan emin olun. Alternatif olarak, kısayol olarak npm run serve
veya npm run shell
çalıştırın; bu komutlar hem yapıyı ç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
index.js
aktarılır, yani Bulut İşlevleri günlüğü, satır numaralarını yazdığınız koddan değil, index.js
dosyasından verir. index.ts
karşılık gelen yolları ve satır numaralarını bulmanızı kolaylaştırmak için 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.