Firebase-tools: Сообщение об ошибке развертывания Firebase с пустым файлом firebase.json

Созданный на 7 июн. 2017  ·  32Комментарии  ·  Источник: firebase/firebase-tools

Сегодня я немного занимался слиянием проектов и наткнулся на ошибку с командой развертывания firebase.

Я случайно оставил свой firebase.json с содержимым как:
{}

И пытался развернуть с помощью firebase deploy --only database но получал следующую ошибку:
Error: No targets found. Valid targets are: database,storage,functions,hosting

Мне потребовалось некоторое время, чтобы понять, так как я думал, что это связано с недавними проблемами nodejs v8 + тот факт, что я успешно развертывал несколько проектов в течение последних 6 месяцев (правила и отдельный проект функций, у которого была пустая база firebase. json) до сих пор.

Если бы ошибка предлагала заглянуть в мой firebase.json, это помогло бы 👍

Самый полезный комментарий

Я пришел сюда, чтобы открыть вопрос, похожий на этот.

ИМО, было бы лучше предварительно заполнить firebase параметрами по умолчанию. Я выбираю, что хочу использовать только хостинг firebase.json, который должен быть создан с параметром хостинга по умолчанию.

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

Все 32 Комментарий

Я пришел сюда, чтобы открыть вопрос, похожий на этот.

ИМО, было бы лучше предварительно заполнить firebase параметрами по умолчанию. Я выбираю, что хочу использовать только хостинг firebase.json, который должен быть создан с параметром хостинга по умолчанию.

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

Спасибо за отзыв @ahaverty ! Я согласен, что сообщение об ошибке могло бы быть немного более описательным. Это немного сложно, так как такая же ошибка также возникает, если кто-то неправильно написал имена целей при использовании флага --only (например, если кто-то запустил «firebase serve --only functions:funcA», и у него на самом деле нет функции с именем funcA) . Что вы думаете о сообщении об ошибке, подобном следующему?

Ошибка: не удается понять, какие цели развертывать. Убедитесь, что вы указали допустимые цели, если вы использовали флаг --only или --except. В противном случае проверьте файл firebase.json, чтобы убедиться, что ваш проект инициализирован для необходимых функций.

@pedrosnk «

@laurenzlong Звучит идеально в обоих случаях 👌

Прежде всего спасибо за ответ :)

Я понял, что со мной произошло. возможно, это то же самое, что случилось с @ahaverty.

Я набрал $ firebase init и не выбрал вариант хостинга, нажав пробел. Я перешел к нему и нажал клавишу ввода. (не читал полное сообщение в cli).

Это была полностью моя ошибка, но я чувствовал, что этой ошибки можно избежать. Может быть, если я нажму «Ввод» в функцию, кли сможет выбрать ее автоматически. вместо создания пустого файла firebase.json .

еще раз спасибо за этот проект.

Контекст моего варианта использования: я оборачиваю наши команды развертывания Firebase в сценарии bash с некоторыми прекрасными проверками «Вы уверены?🤔», так как я в ужасе от того, что однажды попаду в наш производственный проект с каким-то сумасшедшим кодом Dev, после того, как неправильно работает firebase use devproject ! Я также генерирую firebase.json с помощью скрипта, но когда-то выполнял слияние rules.bolt с моим репозиторием функций и в итоге наткнулся на это. @pedrosnk Я думаю, что ваше предложение сломает мои скрипты, но сообщение об ошибке @laurenzlong — хорошее решение👌

Согласитесь, лучше сообщение об ошибке в этом случае достаточно хорошо

Я согласен с @pedrosnk, файл должен быть

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

В конце концов, все используют SPA с хостингом Firebase.

Только что отправил PR, чтобы исправить сообщение об ошибке. @pedrosnk и @PierBover, что, если «firebase init» не позволит вам продвинуться дальше, если вы не выберете какие-либо функции? Мы не можем на самом деле заполнить хостинг по умолчанию, так как некоторые люди на самом деле его не используют (например, если у них есть мобильное приложение и они используют функции).

Привет @laurenzlong Я выбрал hosting при выполнении firebase init и получил пустой файл.

@PierBover тогда это ошибка. Когда я делаю «firebase init» и выбираю хостинг, я получаю это в своем firbase.json:

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

Не могли бы вы попытаться воспроизвести ошибку? И если вы можете воспроизвести его, то подать другой вопрос? (Пожалуйста, укажите версию CLI, платформу, на которой вы работаете.)

Кроме того, вы выбираете функцию, нажимая пробел (круг становится заполненным). Если вы выбрали его, вы получите ответы на некоторые вопросы, связанные с хостингом (Что вы хотите использовать в качестве общедоступного каталога? Настроить как одностраничное приложение (переписать все URL-адреса в /index.html)?)

Вы правы, я, наверное, вместо пробела нажал энтер. Виноват.

Не беспокойся!

Извините, я новичок, и это самое близкое обсуждение ошибки, которую я вижу. В firebase init я выбрал облачные функции и получил пустой firebase.json с фигурными скобками. Теперь развертывание дает мне «не могу понять, какие цели развертывать». Является ли использование хостинга необходимым условием для использования облачных функций?

Эй, @himanshugarg, я не могу воспроизвести вашу ошибку, вы сможете развернуть ее после инициализации функций. Не могли бы вы создать отдельную проблему и следовать шаблону проблемы, чтобы мы могли получить более подробную информацию?

Спасибо! @pedrosnk

@laurenzlong спасибо за проверку. Это я был виноват. Я переместил только некоторые файлы firebase в другой каталог, что привело к этому. Выполнение чистой инициализации работало хорошо. https://stackoverflow.com/questions/45935600/firebase-cannot-understand-what-targets-to-deploy

В интерфейсе командной строки firebase init тот, кто видит квадратные скобки ( ), может подумать, что они имитируют переключатель, поэтому выбирает вариант и нажимает Enter. Вместо этого я предлагаю квадратные скобки [ ], которые предполагают множественный выбор (флажки).

У меня также был пустой файл firebase.json из-за нажатия Enter и пропущенного пробела.
Я не читал инструкции, потому что знал, что мне нужно выбрать опцию «Хостинг».

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

// Избегайте etra ',' после квадратной скобки, если у вас нет аргумента для перехода туда

Я также нажал Enter вместо пробела. Я думаю, что это не функциональная проблема, а действительно проблема удобства использования.

@ lelong88 Думаю, со

firebase по умолчанию ищет в папке «public» файл «index.html».

если в angular4, например, «index.html» существует в папке «dist», вам нужно перейти в «firebase.json» и вставить туда:

{
"хостинг": {
"общественность": "расстояние"
}
}

это прямое указание firebase искать «index.html» в папке «dist» или любой другой вызов папки вместо «общедоступного».
ядер у вас есть, что ваш файл вызывает 'index.html'.

после этого:

firebase deploy

наверное сработает

работал на меня!

Место для выбора функций? Вы под кайфом?

ахахахах использование пробела? ЛМАО.
Ладно, теперь я понимаю, почему у меня пустой файл. ¯_(ツ)_/¯

[отладка] [2018-06-03T15:18:34.367Z] -------------------------------------------------- --------------------------------------------------
[отладка] [2018-06-03T15:18:34.371Z] Команда: C:\Program Files\nodejs\node.exe C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolsbinfirebase init MyAssignMent
[отладка] [2018-06-03T15:18:34.371Z] Версия интерфейса командной строки: 3.18.5
[отладка] [2018-06-03T15:18:34.371Z] Платформа: win32
[отладка] [2018-06-03T15:18:34.372Z] Версия узла: v10.3.0
[debug] [2018-06-03T15:18:34.373Z] Время: воскресенье, 03 июня 2018 г., 20:48:34 GMT+0530 (стандартное время Индии)
[отладка] [2018-06-03T15:18:34.373Z] -------------------------------------------------- --------------------------------------------------
[отлаживать]
[debug] [2018-06-03T15:18:34.388Z] > для команды требуются области действия: ["email", "openid", "https://www.googleapis.com/auth/cloudplatformprojects.readonly", "https: //www.googleapis.com/auth/firebase"]
[debug] [2018-06-03T15:18:34.389Z] > авторизация через вошедшего в систему пользователя
[Информация]
######## #### ######## ######## ######## ### ###### ##### ###
## ## ## ## ## ## ## ## ## ## ##
###### ## ######## ###### ######## ######### ###### ##### #
## ## ## ## ## ## ## ## ## ## ##
## #### ## ## ######## ######## ## ## ###### ########

Вы собираетесь инициализировать проект Firebase в этом каталоге:

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

Прежде чем мы начнем, имейте в виду:

  • Вы инициализируете существующий каталог проекта Firebase.

[Информация]
=== Настройка проекта
[Информация]
[info] Во-первых, давайте свяжем этот каталог проекта с проектом Firebase.
[информация] Вы можете создать несколько псевдонимов проекта, запустив firebase use --add,
[информация] но сейчас мы просто настроим проект по умолчанию.
[Информация]
[отладка] [2018-06-03T15:18:36.584Z] >>> HTTP-ЗАПРОС ПОЛУЧИТЬ https://admin.firebase.com/v1/projects

Вс, 03 июня 2018 г., 20:48:36 GMT+0530 (стандартное время Индии)
[отладка] [2018-06-03T15:18:38.115Z] <<< HTTP-ОТВЕТ 200
[информация] я .firebaserc уже имеет проект по умолчанию, пропуская
[Информация]
=== Настройка моего назначения
[отладка] [2018-06-03T15:18:38.543Z] Ошибка типа: функции [следующая функция] не является функцией
при инициализации (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 (внутренний/процесс/next_tick.js:68:7)
[ошибка]
[ошибка] Ошибка: Произошла непредвиденная ошибка.

показать ошибку, когда я запускаю cmd firebase init

Привет,
Ниже была ошибка в браузере.

Страница не найдена
Этот файл не существует, и в текущем каталоге не найден ни файл index.html, ни файл 404.html в корневом каталоге.

Почему я это вижу?
Возможно, вы развернули неправильный каталог для своего приложения. Проверьте файл firebase.json и убедитесь, что публичный каталог указывает на каталог, содержащий файл index.html.

Вы также можете добавить 404.html в корень вашего сайта, чтобы заменить эту страницу пользовательской страницей ошибки.

* * * * * Командная строка * * * * * *
развертывание базы данных

=== Развертывание в 'organicshop-18573'...

я развертываю хостинг
i hosting: подготовка каталога dist для загрузки...
⚠ Предупреждение: Публичный каталог не содержит index.html.
✔ хостинг: успешно загружено 7 файлов

✔ Развертывание завершено!
* * * * Firebase.Json * * * * * **

{
"хостинг": {
"общественность": "расстояние",
"игнорировать": [
"firebase.json",
" /. "," /node_modules/ "],"переписывает": [{"источник": " ",
"назначение": "/index.html"
}
]
}
}
* * Структура папок * * **
В папке dist у меня был index.html. Но когда я пытаюсь развернуть, он отображается как «Файл не существует, и не было index.html.

введите ng build, а затем введите firebase deploy

пожарная база плохая

Эта исходная проблема, кажется, решена. Поскольку в последнее время не было никаких действий, я собираюсь закрыть это.

Если у кого-то есть дополнительные проблемы с firebase.json , пожалуйста, откройте новую проблему с соответствующей информацией!

Я следовал предоставленным решениям, но они не решили мою проблему.

страница не извлекает данные, она пустая, но загружается значок избранного. какой холод может быть проблемой

Была ли эта страница полезной?
0 / 5 - 0 рейтинги