如何获得“ firebase部署-仅功能”命令以在functions /目录中使用package.json?

时间:2018-07-25 04:17:19

标签: firebase npm google-cloud-functions package.json firebase-cli

我已经有了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/东西)?

1 个答案:

答案 0 :(得分:0)

根据the Firebase Typescript docs,看来最好的方法是按如下方式指定predeploy钩子

{
   "functions": {
     "predeploy": "npm --prefix functions run build",
   }
 }

这将从npm run build目录内部调用functions,因此它将调用build中的functions/package.json脚本,而不是项目根目录的package.json