У меня есть некоторые проблемы с моей файловой структурой в моем проекте Firebase, который использует Firebase Hosting и Cloud Functions.
Примечание: я не думаю, что моя проблема связана с powershell $RESOURCE_DIR
и %RESOURCE_DIR
проблема.
Моя текущая структура файла:
project folder
functions
dist
index.js
src
index.js
package.json
firebase.json
package.json
Все работало нормально, когда мой файл index.js
находился в корне моего функции папка.Потому что по умолчанию firebase.json
ищет код функций для развертывания.
Проблема началась, когда я создал папки src и public внутри функции папка.Потому что теперь я перенесу с src на public перед развертыванием.
ВОПРОС 1:
Нужно ли мнеfirebase.json
внутри моей папки functions ?Поскольку папка functions и файл firebase.json
были созданы командой firebase init
, я думаю, что в этом нет необходимости, хотя это немного смущает меня, потому что я видел проекты в Firebase, которые используют только функции (не хостинг) и firebase.json
остается там.
Двигаемся дальше ... Поскольку я изменил папку по умолчанию для своих функций, я перешел к файлу firebase.json
и добавил к нему свойство source
потому что index.js
его больше нет в корне папки functions (по умолчанию):
firebase.json
"functions": {
"source":"functions/public",
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
},
Но теперь яполучить эту ошибку, потому что firebase явно пытается запустить predeploy script
и ищет файл package.json
в моей папке public , а не находит его в корневой папке functions .
Даже когда я удаляю скрипт predeploy
, он все равно пытается найти package.json
внутри моей публичной и я получаю эту ошибку:
ВОПРОС 2
Что я мог сделать, это избавиться от папки public и перенести мою папку src в корень папки functions и использоватьповедение по умолчанию, упомянутое выше.Но есть ли способ обойти это?