Firebase-tools: Funktionen stellen nur Fehler bereit und verweisen auf den Ordner node_modules der übergeordneten Anwendung

Erstellt am 19. Apr. 2018  ·  21Kommentare  ·  Quelle: firebase/firebase-tools

Versions Information

Feuerbasis: 3.18.4
Knoten: 8.10.0
npm: 5.6.0

Plattforminformationen

Fenster

Schritte zum Reproduzieren

firebase deploy --only functions

Erwartetes Verhalten

Die Cloud-Funktionen von Firebase werden erfolgreich bereitgestellt.

Tatsächliches Verhalten

Es wird ein Fehler angezeigt, da der Build der Cloud-Funktionen auf den Ordner node_modules von der Stammebene der Anwendung aus zu verweisen scheint. @types/d3 und @types/googlemaps sind in meiner package.json-Datei für Anwendungen und nicht in meiner package.json-Datei für Funktionen enthalten.

```PS [PFAD AUF LOKALER MASCHINE]> Firebase deploy --only Funktionen

=== Bereitstellung auf 'PROJECT_NAME'...

Ich stelle Funktionen bereit
Ausführen des Befehls: npm --prefix "$RESOURCE_DIR" run lint

functions@lint [PFAD AUF LOKALER MASCHINE]\functions
tslint --project tsconfig.json

Ausführen des Befehls: npm --prefix "$RESOURCE_DIR" run build

functions@ build [PFAD AUF LOKALER MASCHINE]\functions
tsc

../node_modules/@types/d3-axis/index.d.ts(50,36): Fehler TS2304: Name 'SVGSVGElement' kann nicht gefunden werden.
../node_modules/@types/d3-axis/index.d.ts(50,52): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(32,23): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(39,27): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(50,27): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(63,27): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(63,77): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(70,27): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(81,32): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(94,32): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(94,72): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(98,23): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(121,28): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(126,23): Fehler TS2304: Name 'SVGGElement' nicht gefunden.
../node_modules/@types/d3-brush/index.d.ts(138,30): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(164,36): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(191,45): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-brush/index.d.ts(223,38): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-chord/index.d.ts(360,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-chord/index.d.ts(368,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-dispatch/index.d.ts(8,37): Fehler TS2304: Name 'EventTarget' kann nicht gefunden werden.
../node_modules/@types/d3-dispatch/index.d.ts(18,36): Fehler TS2304: Name 'EventTarget' kann nicht gefunden werden.
../node_modules/@types/d3-drag/index.d.ts(19,38): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-drag/index.d.ts(24,36): Fehler TS2304: Name 'HTMLElement' kann nicht gefunden werden.
../node_modules/@types/d3-drag/index.d.ts(24,50): Fehler TS2304: Name 'SVGSVGElement' kann nicht gefunden werden.
../node_modules/@types/d3-drag/index.d.ts(24,66): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-drag/index.d.ts(390,37): Fehler TS2304: Name 'Fenster' kann nicht gefunden werden.
../node_modules/@types/d3-drag/index.d.ts(402,36): Fehler TS2304: Name 'Fenster' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(18,42): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(18,64): Fehler TS2304: Name 'Blob' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(27,44): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(41,12): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(82,11): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(100,12): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(145,11): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(157,42): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(157,64): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(167,74): Fehler TS2304: Name 'HTMLImageElement' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(179,72): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(189,41): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(189,63): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(199,42): error TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(212,12): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(254,11): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(266,41): Fehler TS2304: Name 'RequestInit' kann nicht gefunden werden.
../node_modules/@types/d3-fetch/index.d.ts(266,63): Fehler TS2304: Name 'XMLDocument' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(17,24): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(17,49): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(17,60): Fehler TS2304: Name 'Fenster' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(34,20): Fehler TS2304: Name 'Dokument' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(36,27): Fehler TS2304: Name 'Knoten' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(36,34): Fehler TS2304: Name 'Knoten' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(37,28): Fehler TS2304: Name 'Knoten' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(37,44): Fehler TS2304: Name 'Knoten' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(37,51): Fehler TS2304: Name 'Knoten' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(38,39): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(39,42): Fehler TS2304: Name 'NodeListOf' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(39,53): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(45,32): Fehler TS2304: Name 'HTMLElement' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(45,46): Fehler TS2304: Name 'SVGSVGElement' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(45,62): Fehler TS2304: Name 'SVGGElement' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(110,110): Fehler TS2304: Name 'HTMLElement' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(142,113): Fehler TS2304: Name 'HTMLElement' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(873,43): Fehler TS2304: Name 'HTMLElement' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(977,61): Fehler TS2304: Name 'TouchList' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(989,64): Fehler TS2304: Name 'TouchList' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(1013,29): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1025,15): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1033,18): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1040,15): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1040,35): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1108,33): Fehler TS2304: Name 'Fenster' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(1108,42): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(1108,53): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1108,63): Fehler TS2304: Name 'Fenster' kann nicht gefunden werden.
../node_modules/@types/d3-selection/index.d.ts(1122,44): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1133,45): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1154,46): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1163,49): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/d3-selection/index.d.ts(1163,97): Fehler TS2304: Name 'NodeListOf' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(304,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(312,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(757,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(765,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(935,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(943,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(1230,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(1238,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(1536,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(1544,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(1650,15): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(1686,15): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(2016,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(2024,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(2196,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(2204,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(2273,19): Fehler TS2304: Name 'CanvasPathMethods' nicht gefunden.
../node_modules/@types/d3-shape/index.d.ts(2358,16): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-shape/index.d.ts(2366,22): Fehler TS2304: Name 'CanvasRenderingContext2D' kann nicht gefunden werden.
../node_modules/@types/d3-transition/index.d.ts(572,65): Fehler TS2304: Name 'HTMLElement' kann nicht gefunden werden.
../node_modules/@types/d3-transition/index.d.ts(583,104): Fehler TS2304: Name 'HTMLElement' kann nicht gefunden werden.
../node_modules/@types/d3-zoom/index.d.ts(20,37): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/googlemaps/index.d.ts(33,29): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(37,19): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(54,28): Fehler TS2304: Name 'Knoten' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(788,30): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/googlemaps/index.d.ts(799,36): Fehler TS2304: Name 'Knoten' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(812,26): Fehler TS2304: Name 'Knoten' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1136,20): Fehler TS2304: Name 'Element' nicht gefunden.
../node_modules/@types/googlemaps/index.d.ts(1137,22): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1138,18): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1139,22): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1140,23): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1141,23): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1142,29): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1143,24): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1220,21): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1225,25): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1236,17): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1653,32): Fehler TS2304: Name 'Knoten' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1668,64): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1668,75): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1669,27): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1692,64): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1692,75): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1693,27): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1709,64): Fehler TS2304: Name 'Dokument' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1709,75): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1710,27): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1941,32): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(1942,28): Fehler TS2304: Name 'Knoten' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(2394,36): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(2398,29): Fehler TS2304: Name 'Element' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(2455,37): Fehler TS2304: Name 'HTMLInputElement' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(2616,40): Fehler TS2304: Name 'HTMLDivElement' kann nicht gefunden werden.
../node_modules/@types/googlemaps/index.d.ts(2663,37): Fehler TS2304: Name 'HTMLInputElement' kann nicht gefunden werden.
npm ERR! Code ELIFECYCLE
npm ERR! Fehler 2
npm ERR! Funktionen@ Build: tsc
npm ERR! Ausgangsstatus 2
npm ERR!
npm ERR! Fehler beim Build-Skript Functions@.
npm ERR! Dies ist wahrscheinlich kein Problem mit npm. Oben gibt es wahrscheinlich zusätzliche Logging-Ausgaben.

npm ERR! Ein vollständiges Protokoll dieses Laufs finden Sie unter:
npm ERR! [PFAD AUF LOKALER MASCHINE]\AppData\Roaming\npm-cache_logs\2018-04-19T16_10_21_812Z-debug.log

Fehler: Funktionsvorbereitungsfehler: Befehl mit Exitcode ungleich Null beendet2```

Hilfreichster Kommentar

@laurenzlong Nochmals vielen Dank! Das hat mir geholfen, herauszufinden, was ich tun musste, um mein Problem zu lösen.

An alle anderen, die auf dieses Problem stoßen: Ich konnte die Funktionen erfolgreich erstellen, indem ich das Skript zum Erstellen der Funktionen so geändert habe, dass es tsc --skipLibCheck anstelle von tsc innerhalb von functions/package.json . Dies weist den Typoskript-Compiler an, die Typprüfung aller Deklarationsdateien zu überspringen.

Alle 21 Kommentare

Wenn Sie npm run build in Ihrem Funktionsordner ausgeführt haben, ist dies erfolgreich?

Wenn Sie npm run build in Ihrem Funktionsordner ausgeführt haben, ist es dann erfolgreich?

Es tut nicht. Gleicher Fehler.

Dann hat es etwas mit Ihrem TypeScript-Setup zu tun oder wie Sie Module in Ihren Code importieren. Es ist kein Fehler mit Firebase-Tools.

@laurenzlong Ok, danke, dass du vereinfachte Demonstration zu dem Fehler erstellt, den ich erhalte. Die Cloud-Funktionen bauen gut, bis ich einige Typdefinitionen wie @types/googlemaps . Ich denke, dass die Cloud-Funktionen unabhängig von Typdefinitionspaketen erstellt werden sollten, die ich in die Stammebene dieser Demonstration einbeziehe.

"npm run build" verwendet normales "tsc", um Ihre Dateien zu erstellen. Dies hat nichts mit Firebase oder Cloud Functions zu tun.

@laurenzlong Nochmals vielen Dank! Das hat mir geholfen, herauszufinden, was ich tun musste, um mein Problem zu lösen.

An alle anderen, die auf dieses Problem stoßen: Ich konnte die Funktionen erfolgreich erstellen, indem ich das Skript zum Erstellen der Funktionen so geändert habe, dass es tsc --skipLibCheck anstelle von tsc innerhalb von functions/package.json . Dies weist den Typoskript-Compiler an, die Typprüfung aller Deklarationsdateien zu überspringen.

@dylanjmcdonald oder

    // "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */

    "skipLibCheck": true,
    /* Strict Type-Checking Options */
    "strict": true,

Danke für den Hinweis, btw

Aber was ist, wenn Sie die Prüfung der Deklaration nicht überspringen möchten? In einer meiner Cloud-Funktionen verwende ich Objects.entries(), die es2017 ist. Ich habe es in tsconfig.json eingestellt, aber da es übersprungen wird, wird beim Ausführen der Funktion ein Fehler ausgegeben. Gibt es eine andere Möglichkeit, dies zu umgehen?

Ich habe das gleiche Problem behoben, indem ich hinzugefügt habe:
"typeRoots": [
"./functions/node_modules/@types"
]
in die tsconfig.json im Funktionsordner

Dies geschieht mit dem automatisch generierten Typskript, wenn Funktionen für mich initialisiert werden.

Nur der automatisch generierte Code und die Importe, die genau wie in den Beispielen sind.

Es scheint daran zu liegen, dass tsc in Ihrem Prozessbaum nach Typen sucht und versucht, alles in den @types- Dateien zu

Ich denke, die richtige Lösung hierfür ist, so zu handeln, wie Gongevangen vorgeschlagen hat. füge "node_modules/@types" zu typeRoots hinzu, damit der Modulauflösungsalgorithmus nicht den Baum durchdreht.

Ich habe das gleiche Problem dank @dylanjmcdonald. Ich habe es mit tsc --skipLibCheck gelöst

@dylanjmcdonald tsc --skipLibCheck in ./functions/package.json hat für mich funktioniert, danke!

Ich habe das behoben, indem ich "dom" zu compilerOptions.lib in ./functions/tsconfig.json hinzugefügt habe.

{
  "compilerOptions": {
    "lib": ["es6", "dom"],
    "module": "commonjs",
    "noImplicitReturns": true,
    "outDir": "lib",
    "sourceMap": true,
    "target": "es6"
  },
  "compileOnSave": true,
  "include": [
    "src"
  ]
}

Das sollte auch funktionieren. Ich habe die @yamitzky- Lösung verwendet und für eine Funktionsbereitstellung gearbeitet. Das Folgende ist gemäß dem Code eines Google-Entwicklers verwendbar, den ich mir angesehen habe.
{ "compilerOptions": { "lib": ["es6"], "module": "commonjs", "noImplicitReturns": true, "outDir": "lib", "sourceMap": true, "target": "es6", "skipLibCheck": true, "typeRoots": ["./functions/node_modules/@types"] }, "compileOnSave": true, "include": [ "src" ] }

Es ist großartig, dass es dafür Workarounds gibt, aber eine dieser Lösungen sollte wirklich in .tsconfig das von firebase init generiert wird. Weiß jemand, wie wir dieses Problem wieder öffnen können?

Sie könnten dieses Problem erneut öffnen, aber ich kann Ihnen sagen, dass wir dom wahrscheinlich nicht zur Eigenschaft lib der Vorlage tsconfig.json hinzufügen werden. Es ist als Minimum gedacht, um einen Entwickler auf den Weg zu bringen, und dieser Standard benötigt nicht dom . Wenn Sie das Gegenteil vermuten, können Sie gerne einen Pull-Request für dieses Repository erstellen, um die Vorlagen zu ändern, aber ich denke nicht, dass wir dies ändern würden.

Danke Sir

Stellen Sie sicher, dass Ihre .ts-Datei denselben Namen wie .js in lib hat und fügen Sie sie auch in package.json ein

Nur um zu verdeutlichen, dass die Lösung von "typeRoots" in "compilerOptions" :

{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "outDir": "lib",
    "sourceMap": true,
    "strict": true,
    "target": "es2017",
    "typeRoots": [
      "./functions/node_modules/@types"
    ],
  },
  "compileOnSave": true,
  "include": [
    "src"
  ],
}

Ein bisschen verwirrt, warum dies nicht in die Boilerplate aufgenommen werden sollte ... oder sogar irgendwo in einem der Firebase-Tuts erwähnt wird.

Ich stimme @evanb2 zu - das hat mich nur eine Stunde gekostet! Es wäre sicherlich wert, es hier zumindest zu erwähnen: https://firebase.google.com/docs/functions/typescript, wenn es nicht in Firebase init aufgenommen wird?

Gott segne dich Evanb2! :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen