Firebase-tools: verifyDeveloperNodeModules () ne parvient pas à découvrir "firebase-admin"

Créé le 9 mai 2019  ·  26Commentaires  ·  Source: firebase/firebase-tools

Problèmes liés

1243 et # 1258

[OBLIGATOIRE] Informations sur la version

nœud: 8.16.0

fonctions firebase: 2.3.0

firebase-tools: 6.9.1 ( REMARQUE: fonctionne sur 6.8.0)

firebase-admin: 7.3.0

J'exécute ceci sur Windows 10.

[REQUIS] Scénario de test


Un projet Firebase fraîchement généré utilisant firebase init avec des fonctions.

[OBLIGATOIRE] Étapes pour reproduire

  1. Exécutez npm run start (ou firebase functions:shell )

[OBLIGATOIRE] Comportement attendu


L'émulateur démarre correctement

[OBLIGATOIRE] Comportement réel

Les journaux suivants sont affichés:

!  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)

Avez-vous réussi à déployer vos fonctions?


Oui, le déploiement fonctionne bien. La fonction déployée (bonjour le monde) aussi

emulator-suite bug

Commentaire le plus utile

Il s'agit d'un bug dans les versions firebase-tools 6.9.0 et 6.9.1 . La solution est de passer à 6.8.0 pour l'instant:

npm install -g [email protected]

réf: https://stackoverflow.com/a/56065094/4319131

Tous les 26 commentaires

Je ne savais pas comment étiqueter ce problème, alors je l'ai étiqueté pour un humain à trier. Tenir fermement.

Passer à Firebase-tools car c'est là que l'émulation est implémentée.

L'émulateur fonctionne sur [email protected] . Ce problème est probablement lié aux numéros 1243 et 1258

Rencontrer le même problème:

✔  functions: Using node<strong i="6">@8</strong> from host.
✔  functions: Emulator started at http://localhost:5001
i  functions: Watching "/home/yerzhan/projects/askimam/functions" for Cloud Functions...
⚠  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)
firebase -V
6.9.1
  "dependencies": {
    "firebase-admin": "^7.3.0",
    "firebase-functions": "^2.3.0"
  },

Bien que le package firebase-admin existe dans node_modules.

[2019-05-09T09:19:26.091Z] ----------------------------------------------------------------------
[2019-05-09T09:19:26.093Z] Command:       /home/yerzhan/node-v8.12.0-linux-x64/bin/node /home/yerzhan/node-v8.12.0-linux-x64/bin/firebase emulators:start --debug
[2019-05-09T09:19:26.093Z] CLI Version:   6.9.1
[2019-05-09T09:19:26.093Z] Platform:      linux
[2019-05-09T09:19:26.093Z] Node Version:  v8.12.0
[2019-05-09T09:19:26.094Z] Time:          Thu May 09 2019 15:19:26 GMT+0600 (+06)
[2019-05-09T09:19:26.094Z] ----------------------------------------------------------------------

[2019-05-09T09:19:26.099Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2019-05-09T09:19:26.099Z] > authorizing via signed-in user
[2019-05-09T09:19:26.100Z] > refreshing access token with scopes: ["email","https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","openid"]
[2019-05-09T09:19:26.100Z] >>> HTTP REQUEST POST https://www.googleapis.com/oauth2/v3/token  
 <request body omitted>
[2019-05-09T09:19:26.891Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=utf-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 09 May 2019 09:19:26 GMT, server=scaffolding on HTTPServer2, cache-control=private, x-xss-protection=0, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="46,44,43,39", accept-ranges=none, transfer-encoding=chunked
[2019-05-09T09:19:26.901Z] >>> HTTP REQUEST GET https://cloudresourcemanager.googleapis.com/v1/projects/azan-kz-ask-imam  

[2019-05-09T09:19:28.625Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 09 May 2019 09:19:28 GMT, server=ESF, cache-control=private, x-xss-protection=0, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, server-timing=gfet4t7; dur=923, alt-svc=quic=":443"; ma=2592000; v="46,44,43,39", accept-ranges=none, transfer-encoding=chunked
i  Starting emulators: ["functions"]
✔  functions: Using node<strong i="5">@8</strong> from host.
[2019-05-09T09:19:28.637Z] >>> HTTP REQUEST GET https://mobilesdk-pa.googleapis.com/v1/projects/674391970261:getServerAppConfig  

[2019-05-09T09:19:29.356Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Thu, 09 May 2019 09:19:29 GMT, server=ESF, cache-control=private, x-xss-protection=0, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=quic=":443"; ma=2592000; v="46,44,43,39", accept-ranges=none, transfer-encoding=chunked
✔  functions: Emulator started at http://localhost:5001
i  functions: Watching "/home/yerzhan/projects/askimam/functions" for Cloud Functions...
[2019-05-09T09:19:29.813Z] Functions runtime initialized.
[2019-05-09T09:19:29.813Z] Disabled runtime features: undefined
⚠  The Cloud Functions emulator requires the module "firebase-admin" to be installed. This package is in your package.json, but it's not available. You probably need to run "npm install" in your functions directory.
i  functions: Your functions could not be parsed due to an issue with your node_modules (see above)

J'ai la même solution et j'ai trouvé:
Vous pouvez utiliser la commande d'alias comme ceci: "yarn serve" ou "npm serve"
Il appellera à partir du package.json, dans le bloc "scripts"

Même problème ici! J'ai essayé de trouver une solution de contournement pendant 3 heures, mais sans succès.
Aujourd'hui, j'ai juste pensé à ajouter firebase-admin à global npm, mais je ne sais pas si cela devrait fonctionner.
Essayera votre suggestion

@diogolessa La mise à niveau vers firebase-tools 6.8.0 résout également le problème, n'est-ce pas une option pour vous?

Bien sûr, peut être ... Cela semble être une meilleure approche. Cependant, ce serait bien que toutes les versions les plus récentes fonctionnent normalement pour les débutants comme moi. Merci @ExtraBB

Pareil ici ... Cela arrive aussi sous Linux.

EDIT: Rétrogradation de "correctif" confirmée.

J'avais ce problème, j'ai supprimé firebase-tools et réinstallé [email protected].

Même problème. La rétrogradation est la seule façon de faire fonctionner

Seul paramètre qui fonctionne actuellement
fonctions firebase: 2.3.0
outils firebase: 6.8.0
firebase-admin: 7.3.0

Salut les gens, désolé pour le problème que ce problème cause. Pour l'instant, nous vous recommandons de passer à 6.8.0 pendant que nous travaillons sur un correctif.

Ce problème est dû à l'utilisation du natif require.resolve dans verifyDeveloperNodeModules()slowRequireResolve doit être utilisé. L' autre utilisation de require.resolve natif souffrira également du même problème.

Cela n'a pas été détecté dans nos tests car require.resolve résolu aux dépendances de développement de firebase-tools lors de l'exécution des tests, il a donc semblé qu'il n'y avait pas de différence de comportement entre require.resolve et slowRequireResolve

Il s'agit d'un bug dans les versions firebase-tools 6.9.0 et 6.9.1 . La solution est de passer à 6.8.0 pour l'instant:

npm install -g [email protected]

réf: https://stackoverflow.com/a/56065094/4319131

Merci pour les mises à jour. Le passage à la version 6.8.0 a fonctionné pour nous

Ceci n'est actuellement pas documenté dans la documentation de Firebase pour exécuter des fonctions localement et doit certainement l'être si un correctif n'est pas déjà prêt.

Très bien, nous venons de fusionner un correctif pour cela qui sortira en 6.9.2 aujourd'hui. Nous pouvons attendre un correctif pour # 1265 avant de le publier, mais si cela ne le fait pas, cela se passera tel quel. Une fois qu'il est sorti, je fermerai ce bogue, mais veuillez le rouvrir si le problème persiste pour vous.

Fixé par # 1263

La version 6.9.2 a été publiée avec ce correctif.

Obtention de l'erreur suivante, en me demandant si elle est liée à cette nouvelle version:

AssertionError [ERR_ASSERTION]: missing path
    at Module.require (module.js:595:3)
    at require (internal/module.js:11:18)
    at InitializeFirebaseAdminStubs

mis à jour de 6.8.0 à 6.9.2 et je vois maintenant:

fonctions: Utilisation du nœud @ 8 de l'hôte.

! L'émulateur Cloud Functions nécessite l'installation du module "firebase-functions-test" en tant que dépendance de développement. Pour résoudre ce problème, exécutez "npm install --save-dev firebase-functions-test" dans votre répertoire de fonctions.
Fonctions i: Vos fonctions n'ont pas pu être analysées en raison d'un problème avec vos node_modules (voir ci-dessus)

J'obtiens beaucoup d'erreurs après la mise à niveau vers 6.9.2.

  1. https://github.com/firebase/firebase-tools/issues/1106
  2. https://github.com/firebase/firebase-tools/issues/1265
    et quelques bugs supplémentaires après avoir essayé de s'attaquer aux problèmes existants.
    cette mise à niveau est bien plus cassée. a dû revenir à 6.8.0

La version 6.9.2 a été publiée avec ce correctif.

Le correctif n'a pas collé. Nous voyons cette erreur dans "firebase-tools": "^6.10.0" .

L'émulateur Cloud Functions nécessite que le module "firebase-admin" soit version> 7.0.0, donc votre version est trop ancienne. Vous pouvez probablement résoudre ce problème en exécutant "npm install firebase-admin @ latest " dans votre répertoire de fonctions.

Nous avons supprimé pour l'instant ^ de notre dépendance package.json pour empêcher la mise à niveau automatique lors de l'installation.

"firebase-tools": "^6.8.0", // before
"firebase-tools": "6.8.0", // after

@diogolessa La mise à niveau vers firebase-tools 6.8.0 résout également le problème, n'est-ce pas une option pour vous?

Merci, ça a marché pour moi

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