【问题标题】:firebase.json change public folder dynamicallyfirebase.json 动态更改公用文件夹
【发布时间】:2019-07-27 11:21:56
【问题描述】:

我有一个 angular7/ionic4 应用程序,有 2 个用于登台和生产的环境。

我可以的

离子构建

离子构建--prod

这会将应用程序发布到我在 angular.json 中设置的不同文件夹中

分布/分期

分布/产品

我在 firebase 中也有 2 个项目,可以部署到每个项目

firebase 部署 -P 登台

firebase 部署 -P 默认

但是,在 firebase.json 中,我只能设置一个托管文件夹,以便从中选择要发送到 firebase 的文件:

"hosting": {
    "public": "dist/prod"
}

因此,尽管能够部署到不同的项目,但我似乎无法设置从哪个文件夹进行部署。

我想要

firebase 部署 -P 默认

从 dist/prod 部署文件

firebase 部署 -P 登台

从 dist/staging 部署文件

我可以更改 firebase.json(或 .firebaserc)来为每个环境/项目设置从哪个文件夹部署?

【问题讨论】:

  • 当然,您可以读取、解析和重写 firebase.json 的内容。不过,我不建议这样做,因为您应该将该文件签入源代码管理。我认为你最好为每个环境使用不同的整个项目文件夹,并保持它们的结构相同。
  • 谢谢,我们确实使用 GIT 源代码控制,我希望坚持 GIT 工作流程 - 主分支 (prod) 和功能分支 (staging)。您的建议可行,但需要在两个单独的工作区中签出相同的存储库,其中一个始终保留在 master 上,另一个将是功能分支。并非不可能,但对团队中的某个人开放,遵循他们通常的流程,并在 master/prod 工作区中检查一个特性分支并部署一个特性分支来运行!可惜我不能只为 firebase.json 中的每个项目别名设置构建路径

标签: angular firebase firebase-hosting ionic4


【解决方案1】:

将网站与本地目标相关联,以便 Firebase 知道将哪些代码部署在哪里。

$ firebase target:apply hosting  staging  staging_project_name
$ firebase target:apply hosting  prod  production_project_name

然后编辑firebase.json文件中的配置如下:

{
  "hosting": [ {
      "target": "staging", 
      "public": "dist/staging",
      "rewrites": [...] 
    },
    {
      "target": "prod", 
      "public": "dist/prod",
      "rewrites": [...] 
    }
  ]
}

然后你可以如下部署:

$ firebase deploy --only hosting:staging -P staging
$ firebase deploy --only hosting:prod -P default

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2016-11-16
    • 2012-11-30
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多