Nx Nrwl Firebase İşlevleri

Nrwl , düğüm uygulamaları desteğini yayınladığından beri Firebase Functions için benzer desteği bekliyordum. Bunun için GitHub'da bir sorun bile oluşturdum . Yazım sırasında hala açık, bu yüzden kendi çözümümü yaratmaya karar verdim.

Sorun

Firebase Functions'ı onunla başlattığınızda firebase init, kendi package.jsonve ile işlevler alt dizini oluşturur node_modules. Bu iyi değil. Kodu işlevlerle paylaşmak ve Nx kullanarak yönetmek istiyoruz.

Hedef

  • Firebase İşlevleri bir düğüm uygulaması olarak mevcuttur
  • Sadece bir tane var package.jsonvenode_modules
  • İşlevler, paylaşılan kodu kullanaraklibs

Angular uygulamasıyla çalışan bir Nrwl Projeniz olduğunu varsayıyoruz. Ayrıca Firebase hesabınızın olması ve Firebase İşlevlerinin ne olduğunu anlamanız önerilir.

Çözüm

Firebase'i kurun

Henüz yapmadıysanız, kurun firebase-toolsve giriş yapın:

yarn global add firebase-tools
firebase login

{
  "projects": {
    "default": "your-firebase-project-name"
  }
}

Hedefte belirtildiği gibi, İşlevler temel alınacaktır node-app. Bunu yapmak için, node-appadlandırılmış "işlevler" oluşturun:

ng add @nrwl/node # Adds Node capabilities
ng g @nrwl/node:application functions

Firebase Functions bağımlılıklarını yükleyin

yarn add firebase firebase-admin firebase-functions

import * as functions from 'firebase-functions';

// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
export const helloWorld = functions.https.onRequest((request, response) => {
  response.send('Hello from Firebase!');
});

Firebase İşlevlerini anlaşılacak şekilde ayarlamak firebase.jsoniçin kök dizinde oluşturun:

{
  "functions": {
    "predeploy": [
      "yarn lint functions",
      "yarn build functions --prod"
    ],
    "source": "/"
  }
}

  • sourceprojenin köküne işaret eder. Sadece bir tane package.jsonolduğu ve kök dizinde olduğu için orayı göstermesi gerekiyor.

"main": "dist/apps/functions/main.js",
"engines": {
  "node": "10"
},

  • engineFirebase'e hangi düğüm sürümünde çalıştırılması gerektiğini söylüyor. Yazma anında node v10desteklenen en yenisidir. Ayrıca , firebase ile çakışacağından burada sürüm yarnveya npmsürüm belirtemezsiniz.

Firebase İşlevlerinin sunulması, tipik düğüm uygulamasından biraz daha karmaşıktır. Bu geliştirici bağımlılığını ekleyin:

yarn add concurrently -D

"firebase:serve": "concurrently --kill-others \"yarn run build functions --watch\" \"firebase serve --only functions\"",
"firebase:shell": "concurrently --kill-others \"yarn run build functions --watch\" \"firebase functions:shell\" --raw",
"firebase:deploy": "firebase deploy",

  • yarn firebase:shell - yerel olarak işlevler kabuğunu çalıştır
  • yarn firebase:deploy --only functions - işlevleri dağıtma

Yazma anında firebase serveyalnızca dizinden işlevlere hizmet eder dist. concurrentlyÇalışması buildiçin watchbayrakla ve serve"eşzamanlı olarak" koşmak için kullanırız .

Özet

Bu hemen hemen onu kapsar. Firebase Functions'ı Nx projesine dahil etmenin kolay ve zarif yolu. Bunun için kaynak kodu burada bulunabilir . Bununla birlikte, aktif olarak geliştirildiğinden, BU sürümü incelemek istiyorsanız, bu işlemi kontrol edin .

Suggested posts

En çok kullandığım kodlama kaynaklarım

En çok kullandığım kodlama kaynaklarım

Bu hafta, günlük e-posta listesinin bir üyesinden bir e-posta aldım. Bilmek istediler: Günlük, haftalık ve aylık olarak hangi kaynakları ziyaret ediyorsunuz? Harika soru! İş akışım ve kullandığım en önemli kaynaklar hakkında bazı bilgileri paylaşmaya çalışmaktan mutluluk duyuyorum.

Lit library serisi — 1: lit-html Kitaplığına Derin Bir Dalış

Lit library serisi — 1: lit-html Kitaplığına Derin Bir Dalış

Bu blog dizisinin amacı, Lit kitaplığının derinliklerine inmek ve benzersiz özelliklerini ve kendisini piyasadaki diğer kitaplıklardan ve çerçevelerden nasıl ayırdığını kapsamlı bir şekilde anlamaktır. Seri, 1 gibi konuları kapsayan üç bölüme ayrılmıştır.

Related posts

O Tehdit Arşivi: Cilt 7 Black Basta

O Tehdit Arşivi: Cilt 7 Black Basta

Günümüzün birbirine bağlı dünyasında, siber saldırı tehdidi her zamankinden daha yaygın. Siber suçlular ve ulus-devlet aktörleri sürekli olarak güvenlik açıklarından yararlanmaya ve değerli verileri çalmaya çalışarak her büyüklükteki kuruluş için önemli bir risk oluşturuyor.

kovboy yalanı

Mega şirketler Amerikalılara nasıl büyük bir yalan sattı?

kovboy yalanı

Güneşin ilk ışınları düzlüklerdeki buzlu çimleri aydınlatırken, batının engebeli tepelerinde parıldayan altın rengi bir sabah. Simsiyah ve iri, sakin bir Angus sığır sürüsü, hepsinin iyi bildiği bir yere giden ıssız bir patikadan aşağı inerken güneşin doğuşuna karşı siluet oluşturuyor; kahvaltı barı.

Artık parola yok — geçiş anahtarları parolanızın yerini nasıl alacak?

Artık parola yok — geçiş anahtarları parolanızın yerini nasıl alacak?

Belirsizliği önlemek için aşağıdaki terimler kullanılacaktır; Doğrulayıcı; Web sitesine giriş yapmak için kullanılan cep telefonu; Kullanıcının oturum açma isteği Hizmetini yapmak için kullandığı web sitesi veya uygulama; Verilen hizmeti sağlayan satıcı, örn.

Neden bazı serbest çalışanlar hayatlarını taklit ediyorlar?

Neden bazı serbest çalışanlar hayatlarını taklit ediyorlar?

Geçenlerde dünyanın en büyük profesyonel sosyal ağı olan Linkedin'deydim ve dikkatimi çeken, takip ettiğim serbest tasarımcıların gönderilerini buldum. Hepsi uçaklardan, dizüstü bilgisayarlarıyla sahilden, yüzme havuzlarından ve muhteşem manzaralı ofislerden fotoğraflar yayınladılar.