代码之家  ›  专栏  ›  技术社区  ›  CodyBugstein

如何让“firebase deploy--only functions”命令使用functions/目录中的package.json?

  •  1
  • CodyBugstein  · 技术社区  · 6 年前

    我有一个Firebase/Angular应用程序的标准应用程序结构。

    - functions/
       |--- index.ts
       |--- package.json
    - src/
       |--- app/
       |     |--- (angular stuff)
       |--- index.html
       |--- ...
    - package.json
    - firebase.json
    

    问题是当我跑的时候 firebase deploy --only functions ,我在中定义的部署前挂钩 firebase.json ,从内部调用 root/ 目录,而不是从里面 root/functions/ 目录。

    root/package.json 我有

    {
      "name": "functions",
      "scripts": {
        "echo": "echo 'hello1'"
      },
    ...
    }
    

    root/functions/package.json 我有

    {
      "name": "functions",
      "scripts": {
        "echo": "echo 'hello2'"
      },
    ...
    }
    

    在我的 我有文件

    {
      ...
      "functions": {
        "predeploy": [
          "npm run echo"
        ]
      },
    

    不管我在不在 根/ root/functions ,当我跑步时 firebase部署--仅限函数 hello1

    如何配置我的Firebase工具来使用这些配置(即 package.json functions/ 当我跑的时候 deploy --only functions ?

    1 回复  |  直到 6 年前
        1
  •  0
  •   CodyBugstein    6 年前

    这似乎是最好的办法让这个工作,根据 the Firebase Typescript docs ,用于指定 predeploy 钩子如下

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

    这个电话 npm run build 从里面 functions build 脚本输入 functions/package.json package.json