Firebase-tools: Les fonctions ne déploient que des erreurs, en référençant le dossier node_modules de l'application parente

Créé le 19 avr. 2018  ·  21Commentaires  ·  Source: firebase/firebase-tools

Informations sur les versions

base de feu : 3.18.4
nœud : 8.10.0
npm : 5.6.0

Informations sur la plate-forme

les fenêtres

Étapes à reproduire

firebase deploy --only functions

Comportement attendu

Les fonctions cloud de Firebase seront déployées avec succès.

Comportement réel

Réception d'une erreur car la compilation des fonctions cloud semble référencer le dossier node_modules à partir du niveau racine de l'application. @types/d3 et @types/googlemaps sont inclus dans mon fichier package.json d'applications et non dans mon fichier package.json de fonctions.

```PS [CHEMIN SUR LA MACHINE LOCALE]> firebase deploy --only fonctionne

=== Déploiement sur 'PROJECT_NAME'...

je déploie des fonctions
Exécution de la commande : npm --prefix "$RESOURCE_DIR" exécutez lint

fonctions@ lint [CHEMIN SUR LA MACHINE LOCALE]\functions
tslint --projet tsconfig.json

Exécution de la commande : npm --prefix "$RESOURCE_DIR" exécute la compilation

fonctions@ build [CHEMIN SUR LA MACHINE LOCALE]\functions
tsc

../node_modules/@types/d3-axis/index.d.ts (50,36) : erreur TS2304 : Impossible de trouver le nom 'SVGSVGElement'.
../node_modules/@types/d3-axis/index.d.ts(50,52) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(32,23) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(39,27) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts (50,27) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(63,27) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(63,77) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(70,27) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(81,32) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(94,32) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(94,72) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(98,23) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(121,28) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(126,23) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(138,30) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(164,36) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(191,45) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-brush/index.d.ts(223,38) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-chord/index.d.ts(360,16) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-chord/index.d.ts(368,22) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-dispatch/index.d.ts(8,37) : erreur TS2304 : Impossible de trouver le nom 'EventTarget'.
../node_modules/@types/d3-dispatch/index.d.ts(18,36): erreur TS2304: Impossible de trouver le nom 'EventTarget'.
../node_modules/@types/d3-drag/index.d.ts(19,38) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-drag/index.d.ts(24,36) : erreur TS2304 : Impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-drag/index.d.ts(24,50) : erreur TS2304 : Impossible de trouver le nom 'SVGSVGElement'.
../node_modules/@types/d3-drag/index.d.ts(24,66) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-drag/index.d.ts(390,37) : erreur TS2304 : Impossible de trouver le nom 'Window'.
../node_modules/@types/d3-drag/index.d.ts (402,36) : erreur TS2304 : Impossible de trouver le nom 'Window'.
../node_modules/@types/d3-fetch/index.d.ts(18,42): erreur TS2304: Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(18,64) : erreur TS2304 : Impossible de trouver le nom 'Blob'.
../node_modules/@types/d3-fetch/index.d.ts(27,44) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(41,12) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(82,11) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(100,12) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(145,11) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(157,42): erreur TS2304: Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(157,64) : erreur TS2304 : Impossible de trouver le nom 'Document'.
../node_modules/@types/d3-fetch/index.d.ts(167,74) : erreur TS2304 : Impossible de trouver le nom 'HTMLImageElement'.
../node_modules/@types/d3-fetch/index.d.ts(179,72) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(189,41): erreur TS2304: Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(189,63) : erreur TS2304 : Impossible de trouver le nom 'Document'.
../node_modules/@types/d3-fetch/index.d.ts(199,42): erreur TS2304: Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(212,12) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(254,11) : erreur TS2304 : Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(266,41): erreur TS2304: Impossible de trouver le nom 'RequestInit'.
../node_modules/@types/d3-fetch/index.d.ts(266,63) : erreur TS2304 : Impossible de trouver le nom 'XMLDocument'.
../node_modules/@types/d3-selection/index.d.ts(17,24) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(17,49) : erreur TS2304 : Impossible de trouver le nom 'Document'.
../node_modules/@types/d3-selection/index.d.ts(17,60) : erreur TS2304 : Impossible de trouver le nom 'Window'.
../node_modules/@types/d3-selection/index.d.ts(34,20) : erreur TS2304 : Impossible de trouver le nom 'Document'.
../node_modules/@types/d3-selection/index.d.ts(36,27) : erreur TS2304 : Impossible de trouver le nom 'Node'.
../node_modules/@types/d3-selection/index.d.ts(36,34) : erreur TS2304 : Impossible de trouver le nom 'Node'.
../node_modules/@types/d3-selection/index.d.ts(37,28) : erreur TS2304 : Impossible de trouver le nom 'Node'.
../node_modules/@types/d3-selection/index.d.ts(37,44) : erreur TS2304 : Impossible de trouver le nom 'Node'.
../node_modules/@types/d3-selection/index.d.ts(37,51): erreur TS2304: Impossible de trouver le nom 'Node'.
../node_modules/@types/d3-selection/index.d.ts(38,39) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(39,42): erreur TS2304: Impossible de trouver le nom 'NodeListOf'.
../node_modules/@types/d3-selection/index.d.ts(39,53): erreur TS2304: Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(45,32) : erreur TS2304 : Impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(45,46) : erreur TS2304 : Impossible de trouver le nom 'SVGSVGElement'.
../node_modules/@types/d3-selection/index.d.ts(45,62) : erreur TS2304 : Impossible de trouver le nom 'SVGGElement'.
../node_modules/@types/d3-selection/index.d.ts(110,110) : erreur TS2304 : Impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(142,113) : erreur TS2304 : Impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(873,43) : erreur TS2304 : impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-selection/index.d.ts(977,61): erreur TS2304: Impossible de trouver le nom 'TouchList'.
../node_modules/@types/d3-selection/index.d.ts(989,64) : erreur TS2304 : Impossible de trouver le nom 'TouchList'.
../node_modules/@types/d3-selection/index.d.ts (1013,29) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts (1025,15) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts (1033,18) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts (1040,15) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts (1040,35) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(1108,33) : erreur TS2304 : Impossible de trouver le nom 'Window'.
../node_modules/@types/d3-selection/index.d.ts(1108,42): erreur TS2304: Impossible de trouver le nom 'Document'.
../node_modules/@types/d3-selection/index.d.ts(1108,53) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(1108,63) : erreur TS2304 : Impossible de trouver le nom 'Window'.
../node_modules/@types/d3-selection/index.d.ts(1122,44) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(1133,45) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(1154,46) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(1163,49): erreur TS2304: Impossible de trouver le nom 'Element'.
../node_modules/@types/d3-selection/index.d.ts(1163,97) : erreur TS2304 : Impossible de trouver le nom 'NodeListOf'.
../node_modules/@types/d3-shape/index.d.ts(304,16) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (312,22) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(757,16) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(765,22) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(935,16) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(943,22) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1230,16) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1238,22) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1536,16) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1544,22) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (1650,15) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(1686,15) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2016,16) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts (2024,22) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2196,16) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2204,22): erreur TS2304: Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2273,19) : erreur TS2304 : impossible de trouver le nom 'CanvasPathMethods'.
../node_modules/@types/d3-shape/index.d.ts(2358,16) : erreur TS2304 : Impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-shape/index.d.ts(2366,22) : erreur TS2304 : impossible de trouver le nom 'CanvasRenderingContext2D'.
../node_modules/@types/d3-transition/index.d.ts(572,65) : erreur TS2304 : Impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-transition/index.d.ts(583.104): erreur TS2304: Impossible de trouver le nom 'HTMLElement'.
../node_modules/@types/d3-zoom/index.d.ts(20,37) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(33,29) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(37,19) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(54,28) : erreur TS2304 : impossible de trouver le nom 'Node'.
../node_modules/@types/googlemaps/index.d.ts(788,30) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(799,36) : erreur TS2304 : impossible de trouver le nom 'Node'.
../node_modules/@types/googlemaps/index.d.ts(812,26) : erreur TS2304 : impossible de trouver le nom 'Node'.
../node_modules/@types/googlemaps/index.d.ts(1136,20): erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1137,22) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1138,18) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1139,22): erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1140,23): erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1141,23): erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1142,29) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1143,24) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1220,21): erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1225,25): erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1236,17) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1653,32) : erreur TS2304 : impossible de trouver le nom 'Node'.
../node_modules/@types/googlemaps/index.d.ts(1668,64) : erreur TS2304 : impossible de trouver le nom 'Document'.
../node_modules/@types/googlemaps/index.d.ts(1668,75) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1669,27) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1692,64) : erreur TS2304 : impossible de trouver le nom 'Document'.
../node_modules/@types/googlemaps/index.d.ts(1692,75) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1693,27) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1709,64) : erreur TS2304 : impossible de trouver le nom 'Document'.
../node_modules/@types/googlemaps/index.d.ts(1709,75) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1710,27) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts (1941,32) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(1942,28) : erreur TS2304 : impossible de trouver le nom 'Node'.
../node_modules/@types/googlemaps/index.d.ts(2394,36) : erreur TS2304 : Impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(2398,29) : erreur TS2304 : impossible de trouver le nom 'Element'.
../node_modules/@types/googlemaps/index.d.ts(2455,37) : erreur TS2304 : impossible de trouver le nom 'HTMLInputElement'.
../node_modules/@types/googlemaps/index.d.ts(2616,40) : erreur TS2304 : impossible de trouver le nom 'HTMLDivElement'.
../node_modules/@types/googlemaps/index.d.ts(2663,37) : erreur TS2304 : Impossible de trouver le nom 'HTMLInputElement'.
npm ERR ! code ELIFECYCLE
npm ERR ! errno 2
npm ERR ! fonctions@ build : tsc
npm ERR ! État de sortie 2
npm ERR !
npm ERR ! Échec du script de génération functions@.
npm ERR ! Ce n'est probablement pas un problème avec npm. Il y a probablement une sortie de journalisation supplémentaire ci-dessus.

npm ERR ! Un journal complet de cette course peut être trouvé dans:
npm ERR ! [CHEMIN SUR LA MACHINE LOCALE]\AppData\Roaming\npm-cache_logs\2018-04-19T16_10_21_812Z-debug.log

Erreur : erreur de prédéploiement des fonctions : la commande s'est terminée avec un code de sortie différent de zéro2```

Commentaire le plus utile

@laurenzlong Merci encore ! Cela m'a aidé à trouver ce que je devais faire pour résoudre mon problème.

Pour toute autre personne rencontrant ce problème - j'ai réussi à créer les fonctions avec succès en modifiant le script de construction des fonctions pour utiliser tsc --skipLibCheck au lieu de tsc partir de functions/package.json . Cela indique au compilateur dactylographié d'ignorer la vérification du type de tous les fichiers de déclaration.

Tous les 21 commentaires

Si vous avez exécuté npm run build dans votre dossier de fonctions, cela réussit-il ?

Si vous avez exécuté npm run build dans votre dossier de fonctions, cela réussit-il ?

Ce ne est pas. Même erreur.

Ensuite, c'est quelque chose à voir avec votre configuration TypeScript ou la façon dont vous importez des modules dans votre code. Ce n'est pas un bug avec firebase-tools.

@laurenzlong Ok, merci d'avoir pris le temps de m'aider sur celui-ci. Je suppose que je me demande pourquoi les fonctions cloud de Firebase se soucient même des packages que j'inclus dans mon application. J'ai créé une démonstration simplifiée sur l'erreur que je reçois. Les fonctions cloud se construisent correctement jusqu'à ce que j'inclue des définitions de type telles que @types/googlemaps . Je pense que les fonctions cloud devraient être construites indépendamment des packages de définition de type que j'inclus dans le niveau racine de cette démonstration.

"npm run build" utilise "tsc" normal pour construire vos fichiers. Cela n'a rien à voir avec Firebase ou Cloud Functions.

@laurenzlong Merci encore ! Cela m'a aidé à trouver ce que je devais faire pour résoudre mon problème.

Pour toute autre personne rencontrant ce problème - j'ai réussi à créer les fonctions avec succès en modifiant le script de construction des fonctions pour utiliser tsc --skipLibCheck au lieu de tsc partir de functions/package.json . Cela indique au compilateur dactylographié d'ignorer la vérification du type de tous les fichiers de déclaration.

@dylanjmcdonald ou placez-le dans le fichier tsconfig.json :

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

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

Merci pour l'avertissement, d'ailleurs

Mais que faire si vous ne voulez pas ignorer la vérification de la déclaration ? Dans l'une de mes fonctions cloud, j'utilise Objects.entries() qui est es2017. Je l'ai défini dans tsconfig.json mais parce qu'il le saute, il génère une erreur lorsque la fonction est exécutée. Y a-t-il un autre moyen de contourner cela?

J'ai résolu le même problème en ajoutant :
"typeRacines": [
"./functions/node_modules/@types"
]
au tsconfig.json dans le dossier des fonctions

Cela se produit avec le script dactylographié généré automatiquement lorsque les fonctions sont initialisées pour moi.

Juste le code généré automatiquement et les importations qui sont exactement comme dans les exemples.

Cela semble être dû au fait que tsc recherchera des types dans votre arborescence de processus et essaiera de tout vérifier dans les fichiers @types mais rien d'autre pour que les choses se gâtent ?

Je pense que la solution la plus correcte à cela est de faire comme Gongevangen l'a suggéré. ajoutez "node_modules/@types" à typeRoots afin que l'algorithme de résolution de module ne devienne pas fou dans l'arborescence.

J'ai eu le même problème grâce à @dylanjmcdonald je l'ai résolu en utilisant tsc --skipLibCheck

@dylanjmcdonald tsc --skipLibCheck en ./functions/package.json fonctionné pour moi, merci !

J'ai corrigé en ajoutant "dom" à compilerOptions.lib dans ./functions/tsconfig.json .

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

Cela devrait fonctionner aussi. J'ai utilisé la solution @yamitzky et travaillé pour un déploiement de fonction. Ce qui suit est utilisable selon le code d'un développeur google que j'ai consulté.
{ "compilerOptions": { "lib": ["es6"], "module": "commonjs", "noImplicitReturns": true, "outDir": "lib", "sourceMap": true, "target": "es6", "skipLibCheck": true, "typeRoots": ["./functions/node_modules/@types"] }, "compileOnSave": true, "include": [ "src" ] }

C'est bien qu'il existe des solutions de contournement pour cela, mais l'une de ces solutions devrait vraiment être dans le .tsconfig généré par firebase init . Est-ce que quelqu'un sait comment rouvrir ce problème ?

Vous pouvez rouvrir ce problème, mais je peux vous dire que nous n'ajouterons probablement pas dom à la propriété lib du modèle tsconfig.json . Il s'agit au minimum de faire décoller un développeur et cette valeur par défaut n'a pas besoin de dom . Si vous êtes fortement d'avis contraire, n'hésitez pas à ouvrir une pull request sur ce dépôt en changeant les modèles, mais je ne pense pas que ce soit un changement que nous ferions.

Merci Monsieur

Assurez-vous que votre fichier .ts porte le même nom que .js dans lib et incluez-le également dans package.json

Juste pour clarifier la solution de @gongevangen fonctionne mais assurez-vous de placer la clé "typeRoots" intérieur de "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"
  ],
}

Un peu confus quant à pourquoi cela ne serait pas inclus dans le passe-partout … ou même mentionné n'importe où dans l'un des tuts Firebase.

Je suis d'accord avec @evanb2 - cela ne m'a coûté qu'une heure ! Cela vaudrait sûrement la peine de le mentionner ici : https://firebase.google.com/docs/functions/typescript sinon l'inclure dans firebase init ?

Que Dieu vous bénisse Evanb2 ! :)

Cette page vous a été utile?
0 / 5 - 0 notes