在使用Firebase托管和云功能的Firebase项目中,我的文件结构存在一些问题。
注意:我认为我的问题与powershell $RESOURCE_DIR
和%RESOURCE_DIR
问题无关。
我当前的文件结构是:
project folder
functions
dist
index.js
src
index.js
package.json
firebase.json
package.json
当我的index.js
文件位于我的 functions 文件夹的根目录中时,一切正常。因为这是firebase.json
查找要部署的函数代码的默认设置。
当我在 functions 文件夹中创建 src 和 public 文件夹时,问题开始了。因为现在我将在部署之前从 src 转换为 public 。
问题1:
我的 functions 文件夹中是否需要firebase.json
?由于 functions 文件夹和firebase.json
文件是由firebase init
命令创建的,所以我认为没有必要,尽管这使我有些困惑,因为我已经看过Firebase项目仅使用功能(不托管),而firebase.json
停留在其中。
继续...由于我更改了函数的默认文件夹,因此我进入了firebase.json
文件并在其上添加了source
属性,因为index.js
不在文件中功能文件夹的根目录(默认)了:
firebase.json
"functions": {
"source":"functions/public",
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
},
但是现在我得到了这个错误,因为很明显firebase试图运行predeploy script
,并且它正在我的 public 文件夹中寻找package.json
文件,而不是找到它在功能根文件夹中。
即使我删除了predeploy
脚本,它仍然尝试在我的 public 文件夹中找到一个package.json
,但出现此错误:
问题2
我能做的是摆脱 public 文件夹,并将我的 src 文件夹转换为 functions 文件夹的根目录并使用上述默认行为。但是有办法解决吗?