【问题标题】:How to deploy cloud functions to different projects inside .firebaserc?如何将云功能部署到 .firebaserc 中的不同项目?
【发布时间】:2020-08-23 14:51:51
【问题描述】:

有没有办法使用单个命令将功能部署到.firebaserc 中列出的不同 Firebase 项目?

我有这个样本.firebaserc

{
  "projects": {
    "default": "project1",
    "project2": "project2-abcd"
  }
}

更新函数时,我会这样做:

firebase use default && firebase deploy && firebase use project2 && firebase deploy

如果我有大量项目,命令会变得更长,因此我制作了一个节点脚本,可以自动部署到 .firebaserc 中列出的所有项目:

const { promisify } = require("util");

const exec = promisify(require("child_process").exec);
const readFile = promisify(require("fs").readFile);

const deploy = async () => {
  try {
    const data = await readFile("./.firebaserc", "utf-8");
    const projects = Object.keys(JSON.parse(data).projects);

    for (const proj of projects) {
      console.log(`Deploying functions to ${proj}...`);
      const { stdout, stderr } = await exec(
        `firebase use ${proj} && firebase deploy`
      );

      console.log("stdout:", stdout);
      console.log("stderr:", stderr);
    }
  } catch (e) {
    console.log(e);
  }
};

deploy();

这可行,但我正在尝试寻找替代方案(如果有的话)。

【问题讨论】:

    标签: node.js firebase google-cloud-functions firebase-tools


    【解决方案1】:

    您可以使用--project 标志吗?

    例如。 firebase deploy --project=project2

    https://firebase.google.com/docs/cli#use_aliases

    如果您想针对已分配 prod 别名的 Firebase 项目运行单个命令,则可以运行例如 firebase deploy --project=prod。

    更新

    您要部署 .firebaserc 中列出的所有项目吗?

    可以像下面的单行命令一样使用。

    例如

    cat .firebaserc | jq '.projects | keys | .[]' | xargs -I {} firebase deploy --project={}

    见:

    【讨论】:

    • 这仅适用于具有 prod 别名的单个项目。
    猜你喜欢
    • 2018-08-05
    • 2019-07-01
    • 2023-04-01
    • 1970-01-01
    • 2018-07-24
    • 2012-11-13
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多