我已经有了Firebase / Angular应用程序的标准应用程序结构。
- functions/
|--- index.ts
|--- package.json
- src/
|--- app/
| |--- (angular stuff)
|--- index.html
|--- ...
- package.json
- firebase.json
问题是,当我运行firebase deploy --only functions
时,在firebase.json
中定义的预部署钩子是从root/
目录内部而不是从{{1 }}目录。
例如,在root/functions/
中,我有
root/package.json
但在 {
"name": "functions",
"scripts": {
"echo": "echo 'hello1'"
},
...
}
中,我有
root/functions/package.json
在我的{
"name": "functions",
"scripts": {
"echo": "echo 'hello2'"
},
...
}
文件中,我有
firebase.json
无论我身在{
...
"functions": {
"predeploy": [
"npm run echo"
]
},
还是root/
中,当我运行root/functions
时,我都会得到 firebase deploy --only functions
运行hello1
时,如何配置Firebase工具以使用package.json
中的配置(即functions/
东西)?
答案 0 :(得分:0)
根据the Firebase Typescript docs,看来最好的方法是按如下方式指定predeploy
钩子
{
"functions": {
"predeploy": "npm --prefix functions run build",
}
}
这将从npm run build
目录内部调用functions
,因此它将调用build
中的functions/package.json
脚本,而不是项目根目录的package.json