Firebase 管理多个站点的托管
Firebase Managing Hosting with Multiple Sites
我已经运行最近运行 firebase deploy --only hosting
没有指定目标并且多次部署到错误的站点。我想知道是否可以将 VS Code 中的调试选项卡配置为 运行 命令以确保我正在部署到正确的站点。
总的来说,我发现在 Firebase 中管理多个托管站点非常令人沮丧,因为您必须严格按照步骤添加所有目标。
有没有人找到让这个部门的生活更简单的技巧?
您可以使用 Firebase predeploy
and postdeploy
hooks 实现此目的。在您的项目目录(包含 "public/"、"functions/" 等)中,编辑您的 firebase.json
以包含您的目标符合您预期的断言。
{
"functions": {
// ...
},
"hosting": {
// ...
"predeploy": [
"node assertMatch.js \"$GCLOUD_PROJECT\" \"your-desired-project-id\"",
]
}
}
assertMatch.js
只是一个简单的脚本,它比较第一个和第二个命令行参数,如果不匹配,returns 一个非零退出代码。这可能会作为全局脚本安装在某处。
let argv = process.argv.slice(2);
let equal = argv[0] == argv[1];
if (equal) {
console.log('Assertion passed.')
} else {
console.log('Assertion failed. "' + argv[0] + '" does not match "' + argv[1] + '".');
}
process.exit(!equal);
我已经运行最近运行 firebase deploy --only hosting
没有指定目标并且多次部署到错误的站点。我想知道是否可以将 VS Code 中的调试选项卡配置为 运行 命令以确保我正在部署到正确的站点。
总的来说,我发现在 Firebase 中管理多个托管站点非常令人沮丧,因为您必须严格按照步骤添加所有目标。
有没有人找到让这个部门的生活更简单的技巧?
您可以使用 Firebase predeploy
and postdeploy
hooks 实现此目的。在您的项目目录(包含 "public/"、"functions/" 等)中,编辑您的 firebase.json
以包含您的目标符合您预期的断言。
{
"functions": {
// ...
},
"hosting": {
// ...
"predeploy": [
"node assertMatch.js \"$GCLOUD_PROJECT\" \"your-desired-project-id\"",
]
}
}
assertMatch.js
只是一个简单的脚本,它比较第一个和第二个命令行参数,如果不匹配,returns 一个非零退出代码。这可能会作为全局脚本安装在某处。
let argv = process.argv.slice(2);
let equal = argv[0] == argv[1];
if (equal) {
console.log('Assertion passed.')
} else {
console.log('Assertion failed. "' + argv[0] + '" does not match "' + argv[1] + '".');
}
process.exit(!equal);