Luk*_*ggy 7 firebase firebase-hosting firebase-cli
I\xc2\xb4m 尝试将我的代码部署到两个不同的 Firebase 项目,一个用于开发,一个用于生产。
\n\n该my-app-dev项目已包含并正在运行,因此我添加了my-app(用于生产)firebase use --add并选择了my-app.
这就是我的 Firebase 配置现在的样子:
\n\n.firebaserc
\n\n{\n "targets": {\n "my-app-dev": {\n "hosting": {\n "app": [\n "my-app-dev"\n ]\n }\n }\n },\n "projects": {\n "default": "my-app-dev",\n "prod": "my-app"\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\nfirebase.json
\n\n{\n "hosting": [\n {\n "target": "app",\n "public": "dist/app",\n "ignore": [\n "firebase.json",\n "**/.*",\n "**/node_modules/**"\n ],\n "rewrites": [\n {\n "source": "**",\n "destination": "/index.html"\n }\n ]\n }\n ],\n "functions": {\n "predeploy": [\n "npm --prefix \\"$RESOURCE_DIR\\" run lint",\n "npm --prefix \\"$RESOURCE_DIR\\" run build"\n ]\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n只要我部署到默认项目,一切都正常,但是当我尝试时,firebase deploy -P prod它会显示以下错误:
Deploy target app not configured for project my-app. Configure with:\n\nfirebase target:apply hosting app <resources...>\nRun Code Online (Sandbox Code Playgroud)\n\n我试图找到有关此命令的更多信息,但仍然不知道要为资源添加什么。总的来说,我觉得它.firebaserc的结构非常混乱。
我有同样的问题,但以不同的方式。
我的项目是一个 Angular 11 项目,它有 4 个不同的环境 - 部署到默认项目(env)的相同行为很好,但是当我尝试部署到不同的环境(firebase 项目)时,它失败了同样的错误:
Deploy target ___ not configured for project ___. Configure with:
我通过添加到我的.firebasesrc > targets:
{
"projects": {
"default": "default-project"
},
"targets": {
"default-project": {
"hosting": {
"frontend": [
"default-project"
]
}
},
"staging-project": { // Added this entry.
"hosting": {
"frontend": [
"staging-project"
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据 GitHub 中的此评论,如果没有“hacky”方法(例如在部署期间以编程方式交换 firebase.json),就无法完成此操作。
目前,Firebase CLI 旨在将项目视为功能相同的匿名环境。这对于能够将相同的资产部署到多个项目而无需更改代码(包括在 firebase.json 中)非常重要。
为了实现您想要的,您需要设置一个 dev 和 prod 文件夹,每个文件夹都有自己的 firebase.json 并且每个文件夹都有一个仅针对该特定项目的目标。现在不支持将不同的资产部署到不同的项目,将来也不太可能支持(但是,我们可能允许在某个时候通过标志配置 firebase.json 的位置)。
| 归档时间: |
|
| 查看次数: |
3998 次 |
| 最近记录: |