Firebase-tools: Message d'erreur de déploiement de Firebase avec un firebase.json vide

Créé le 7 juin 2017  ·  32Commentaires  ·  Source: firebase/firebase-tools

Je faisais un peu de fusion de projets aujourd'hui et je suis tombé sur une erreur avec la commande firebase deploy.

J'ai accidentellement laissé mon firebase.json avec le contenu suivant :
{}

Et j'essayais de déployer avec firebase deploy --only database mais obtenait l'erreur suivante :
Error: No targets found. Valid targets are: database,storage,functions,hosting

Il m'a fallu un certain temps pour comprendre, car je pensais que cela était lié aux récents problèmes de nodejs v8 + au fait que j'ai déployé avec succès plusieurs projets au cours des 6 derniers mois (règles et un projet de fonctions distinct qui avait la firebase vide. json) jusqu'à maintenant.

Si l'erreur suggérait de regarder dans mon firebase.json, cela aurait aidé

Commentaire le plus utile

Je suis venu ici pour ouvrir un problème similaire à celui-ci.

OMI, il serait préférable de pré-remplir la base de feu avec les options par défaut. J'ai choisi d'utiliser uniquement l'hébergement que firebase.json aurait dû être créé avec l'option d'hébergement par défaut.

{
  "hosting": {
    "public": "public"
  }
}

Tous les 32 commentaires

Je suis venu ici pour ouvrir un problème similaire à celui-ci.

OMI, il serait préférable de pré-remplir la base de feu avec les options par défaut. J'ai choisi d'utiliser uniquement l'hébergement que firebase.json aurait dû être créé avec l'option d'hébergement par défaut.

{
  "hosting": {
    "public": "public"
  }
}

Merci pour le retour @ahaverty ! Je suis d'accord que le message d'erreur pourrait être un peu plus descriptif. C'est un peu difficile car la même erreur se produit également si quelqu'un a mal orthographié les noms de cible lors de l'utilisation de l'indicateur --only (par exemple, si quelqu'un a exécuté "firebase serve --only functions:funcA" et qu'il n'a pas réellement de fonction appelée funcA) . Que pensez-vous d'un message d'erreur comme le suivant ?

Erreur : Impossible de comprendre quelles cibles déployer. Vérifiez que vous avez spécifié des cibles valides si vous avez utilisé l'indicateur --only ou --except. Sinon, vérifiez votre firebase.json pour vous assurer que votre projet est initialisé pour les fonctionnalités souhaitées.

@pedrosnk "firebase init" devrait avoir rempli firebase.json avec les bonnes options par défaut. Si ce n'est pas le cas, pouvez-vous signaler un autre bogue et inclure des instructions détaillées pour la reproduction ?

@laurenzlong Cela semble parfait dans les deux cas 👌

Tout d'abord merci pour ta réponse :)

J'ai compris ce qui m'est arrivé. c'est peut-être la même chose qui est arrivée à @ahaverty.

J'ai tapé $ firebase init et je n'ai pas sélectionné l'option hébergement en appuyant sur l'espace. Je suis allé dessus et j'ai appuyé sur la touche Entrée. (je n'ai pas lu le message complet sur le cli).

C'était entièrement mon erreur, mais je me suis dit que cette erreur pouvait être évitée. Peut-être que si j'appuie sur entrer dans une fonctionnalité, le cli devrait pouvoir me la sélectionner automatiquement. au lieu de générer un fichier firebase.json vide.

merci encore pour ce projet

Contexte de mon cas d'utilisation : j'enveloppe nos commandes de déploiement Firebase dans des scripts bash avec de jolies vérifications « Êtes-vous sûr ?  », car je suis terrifié à l'idée de frapper un jour notre projet de production avec un code de développement fou, après pas correctement en cours d'exécution firebase use devproject ! Je générais également le firebase.json via le script, mais je faisais une fois la fusion de rules.bolt dans mon référentiel de fonctions, et j'ai fini par l'atteindre. @pedrosnk Je pense que votre suggestion briserait mes scripts, mais le message d'erreur @laurenzlong est une bonne solution👌

D'accord, un meilleur message d'erreur dans ce cas est suffisant

Je suis d'accord avec @pedrosnk, le fichier doit être pré-rempli avec des options par défaut telles que :

{
    "hosting": {
        "public": "public",
        "rewrites": [
            {
                "source": "**",
                "destination": "/index.html"
            }
        ],
    }
}

Après tout, tout le monde utilise un SPA avec Firebase Hosting.

Je viens d'envoyer un PR pour corriger le message d'erreur. @pedrosnk et @PierBover si « firebase init » ne vous laissez progresser davantage si vous ne l' avez pas sélectionné de fonctionnalités? Nous ne pouvons pas vraiment remplir l'hébergement par défaut car certaines personnes ne l'utilisent pas réellement (par exemple, si elles ont une application mobile et utilisent des fonctions).

@laurenzlong, j'ai sélectionné hosting en faisant firebase init et j'ai eu un fichier vide.

@PierBover c'est un bug alors. Lorsque je fais 'firebase init' et que je sélectionne l'hébergement, j'obtiens ceci dans mon firbase.json :

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

Pourriez-vous essayer de reproduire le bug ? Et si vous pouvez le reproduire, alors déposez un autre problème ? (Veuillez inclure la version CLI, la plate-forme que vous utilisez.)

De plus, vous sélectionnez une caractéristique en appuyant sur l'espace (le cercle se remplit alors). Si vous l'avez sélectionné, vous serez guidé à travers quelques questions liées à l'hébergement (Que voulez-vous utiliser comme répertoire public ? Configurer en tant qu'application d'une seule page (réécrire toutes les URL dans /index.html) ?)

Vous avez raison, j'ai probablement appuyé sur entrée au lieu d'espace. Ma faute.

Pas de soucis!

Désolé, je suis un débutant et c'est la discussion la plus proche de l'erreur que je vois. Sur firebase init, j'ai choisi les fonctions cloud et j'ai obtenu un firebase.json vide avec des accolades. Maintenant, le déploiement me donne « je ne peux pas comprendre quelles cibles déployer ». L'utilisation de l'hébergement est-elle une condition préalable à l'utilisation des fonctions cloud ?

@himanshugarg, je ne parviens pas à reproduire votre bogue, vous devriez pouvoir le déployer après avoir simplement initialisé les fonctions. Pourriez-vous s'il vous plaît déposer un problème séparé et suivre le modèle de problèmes afin que nous puissions capturer plus de détails ?

Merci! @pedrosnk

@laurenzlong merci d'avoir vérifié. C'était de ma faute. Je n'avais déplacé que certains des fichiers firebase vers un autre répertoire, ce qui a causé cela. Faire une initialisation propre a bien fonctionné. https://stackoverflow.com/questions/45935600/firebase-cannot-understand-what-targets-to-deploy

Dans firebase init CLI, celui qui voit des crochets ( ) peut penser qu'il imiter le bouton radio, alors choisit une option et appuie sur Entrée. Je suggère plutôt des crochets [ ] qui suggèrent des choix multiples (cases à cocher).

J'avais également un fichier firebase.json vide en appuyant sur Entrée et en ratant l'espace.
Je n'ai pas lu les instructions car je savais que je devais choisir l'option "Hébergement".

"ignore": [
  "firebase.json",
  "**/.*",
  "**/node_modules/**"
]

// Evitez l'etra ',' après le crochet sqr à moins que vous n'ayez un argument pour y aller

J'ai également appuyé sur entrée au lieu d'espace. Je suppose que ce n'est pas un problème fonctionnel mais c'est bien un problème de convivialité

@lelong88 Je

firebase recherche par défaut dans le dossier « public » le fichier « index.html ».

si dans angular4 par exemple le 'index.html' existe dans le dossier 'dist' vous devez aller dans 'firebase.json' et y coller :

{
"hébergement": {
"public": "dist"
}
}

c'est dire à la firebase de rechercher 'index.html' dans le dossier 'dist' ou tout autre dossier appelé à la place 'public'.
de cœurs que vous avez que votre fichier appelle 'index.html'.

après:

firebase deploy

fonctionnera probablement

a fonctionné pour moi !

De l'espace pour sélectionner des fonctionnalités ? Êtes-vous défoncé?

ahahahah utilisation d'un espace? LMAO.
D'accord, je comprends pourquoi j'ai un fichier vide maintenant. ¯_(ツ)_/¯

[déboguer] [2018-06-03T15:18:34.367Z] ----------------------------------- -----------------------------------
[debug] [2018-06-03T15:18:34.371Z] Commande : C:\Program Files\nodejs\node.exe C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolsbinfirebase init MyAssignMent
[déboguer] [2018-06-03T15:18:34.371Z] Version CLI : 3.18.5
[déboguer] [2018-06-03T15:18:34.371Z] Plate-forme : win32
[débogage] [2018-06-03T15:18:34.372Z] Version du nœud : v10.3.0
[débogage] [2018-06-03T15:18:34.373Z] Heure : 03 juin 2018 20:48:34 GMT+0530 (heure standard de l'Inde)
[déboguer] [2018-06-03T15:18:34.373Z] ----------------------------------- -----------------------------------
[déboguer]
[debug] [2018-06-03T15:18:34.388Z] > la commande requiert des étendues : ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https : //www.googleapis.com/auth/firebase"]
[débogage] [2018-06-03T15:18:34.389Z] > autorisation via un utilisateur connecté
[Info]
######## #### ######## ######## ######## ### ###### ##### ###
## ## ## ## ## ## ## ## ## ## ##
###### ## ######## ###### ######## ######### ###### ##### #
## ## ## ## ## ## ## ## ## ## ##
## #### ## ## ######## ######## ## ## ###### ########

Vous êtes sur le point d'initialiser un projet Firebase dans ce répertoire :

C:\Users\pushpendraPC\Desktop\project\NewAsignMentDeploy\AssignMent\src

Avant de commencer, gardez à l'esprit :

  • Vous êtes en train d'initialiser dans un répertoire de projet Firebase existant

[Info]
=== Configuration du projet
[Info]
[info] Tout d'abord, associons ce répertoire de projet à un projet Firebase.
[info] Vous pouvez créer plusieurs alias de projet en exécutant firebase use --add,
[info] mais pour l'instant nous allons juste configurer un projet par défaut.
[Info]
[débogage] [2018-06-03T15:18:36.584Z] >>> DEMANDE HTTP OBTENIR https://admin.firebase.com/v1/projects

Dim 03 juin 2018 20:48:36 GMT+0530 (heure standard de l'Inde)
[débogage] [2018-06-03T15:18:38.115Z] <<< RÉPONSE HTTP 200
[info] i .firebaserc a déjà un projet par défaut, sautant
[Info]
=== Configuration de mon affectation
[debug] [2018-06-03T15:18:38.543Z] TypeError : features[nextFeature] n'est pas une fonction
à l'initialisation (C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolslib\init\index.js:13:49)
à C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolslib\init\index.js:14:14
à process._tickCallback (interne/process/next_tick.js:68:7)
[Erreur]
[erreur] Erreur : Une erreur inattendue s'est produite.

afficher l'erreur lorsque je lance cmd firebase init

Salut,
Ci-dessous, une erreur dans le navigateur.

Page non trouvée
Ce fichier n'existe pas et aucun index.html n'a été trouvé dans le répertoire actuel ou 404.html dans le répertoire racine.

Pourquoi est-ce que je vois ceci?
Vous avez peut-être déployé le mauvais répertoire pour votre application. Vérifiez votre firebase.json et assurez-vous que le répertoire public pointe vers un répertoire qui contient un fichier index.html.

Vous pouvez également ajouter un 404.html à la racine de votre site pour remplacer cette page par une page d'erreur personnalisée.

* * * * * Ligne de commande * * * * * *
firebase déployer

=== Déploiement vers 'organicshop-18573'...

je déploie l'hébergement
i hébergement : préparation du répertoire dist pour le téléchargement...
Attention : le répertoire public ne contient pas index.html
hébergement : 7 fichiers téléchargés avec succès

✔ Déploiement terminé !
* * * * Firebase.Json * * * * * **

{
"hébergement": {
"public": "dist",
"ignorer": [
"firebase.json",
" /. "," /node_modules/ "],"réécrit": [{"source": " ",
"destination": "/index.html"
}
]
}
}
* * Structure des dossiers * * **
Dans le dossier dist, j'avais index.html. Mais lorsque j'essaie de le déployer, il s'affiche sous la forme " Le fichier n'existe pas et il n'y avait pas d'index.html.

tapez ng build puis tapez firebase deploy

base de feu mauvaise

Ce problème initial semble résolu. Puisqu'il n'y a eu aucune activité récente, je vais fermer ceci.

Si quelqu'un rencontre d'autres problèmes avec firebase.json , veuillez ouvrir un nouveau problème avec les informations appropriées !

J'ai suivi les solutions proposées mais elles n'ont pas résolu mon problème.

la page ne récupère pas les données, elle est vide, mais l'icône fav est chargée. quel froid est le problème

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