如何将云功能部署到 .firebaserc 中的不同项目?
Posted
技术标签:
【中文标题】如何将云功能部署到 .firebaserc 中的不同项目?【英文标题】:How to deploy cloud functions to different projects inside .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();
这可行,但我正在尝试寻找替代方案(如果有的话)。
【问题讨论】:
【参考方案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=
见:
jq xargs【讨论】:
这仅适用于具有 prod 别名的单个项目。以上是关于如何将云功能部署到 .firebaserc 中的不同项目?的主要内容,如果未能解决你的问题,请参考以下文章