node.js - Kan inte distribuera firebase cloud-funktioner eftersom functions/lib/index.js inte finns


Jag tror att det finns ett fel i inställningen av Firebase Cloud Functions.

Jag gjorde:

npm install -g firebase-tools
firebase init functions

Jag har konfigurerat det för TypeScript, allt installerat, ändå kan jag inte distribuera funktionerna eftersom jag får detta felmeddelande:

Error: There was an error reading functions/package.json:

 functions/lib/index.js does not exist, can't deploy Cloud Functions

Jag vet att det inte existerar - det finns ingen lib-mapp alls, men vad kan jag göra för att köra funktionerna?

Varför kan jag inte köra funktioner, om jag har gjort allt som behövde göras?

Svar #1

Jag förstår att du kanske följer instruktionerna från guiden Komma igång eller guiden Använd Typescript för Cloud Functions, under denna sektion hjälper guiden dig att välja Typescript som språk för att skriva funktioner. Var noga med att språket och dess beroenden är korrekt installerade. Och i denna sista guide för Att använda ett befintligt Typescript-projekt, ber den dig redigera package.json för att lägga till ett bash-skript för att bygga ditt Typescript-projekt:

{
   "name": "functions",
   "scripts": {
     "build": "npm run lint && tsc"
   }
 ...

och firebase.json för att lägga till en fördistribution-hook för att köra byggskriptet:

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

men i det här fallet behöver du kontrollera om denna konfiguration gjordes under installationen.

Du kan kolla detta svar där användaren använde sudo npm install typescript för att installera dem, och som Doug nämner försök att installera det endast i ditt projekt, inte globalt; och det måste också vara definierat i din package.json.

Ett annat exempel som åtgärdade ett liknande problem där:

  • Användaren tog bort allt som rörde Firebase Functions
  • Gick in i projektmappen med cd functions (i det här fallet ersätt namnet ‘functions’ med ditt projekt)
  • Körde npm install
  • Kör igen firebase init

Låt mig veta om du kunde lösa detta problem för att kunna hjälpa dig vidare, försök att lägga till mer information som steg och följd dokumentation och loggarna.

Svar #2

  • Öppna en terminal och cd till functions
  • Kör sedan npx tsc --watch

Och försök att serva och distribuera projektet

Relaterade artiklar