如何在firebaserc内部将云功能部署到不同的项目



有没有一种方法可以用一个命令将函数部署到.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();

这是有效的,但如果有替代方案的话,我正在努力寻找。

您能使用--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

相关内容

  • 没有找到相关文章

最新更新