Firebase仅部署Hosting不部署Cloud Functions问题咨询
问题原因与解决方法
核心原因
最常见的问题是Hosting的预部署脚本自动触发了Functions部署,或者Firebase CLI版本存在参数解析bug。
1. Predeploy脚本强制联动部署
检查你的firebase.json,如果Hosting配置里有类似下面的predeploy字段,就会在部署Hosting前自动执行Functions的部署命令,哪怕你加了--only hosting参数也没用:
{ "hosting": { "predeploy": ["npm --prefix \"functions\" run deploy"] } }
2. 旧版Firebase CLI的参数失效bug
较早版本的Firebase CLI可能存在--only参数解析错误,导致无法正确限制部署范围。
解决步骤
1. 检查并修改Predeploy脚本
打开firebase.json,找到Hosting下的predeploy配置:
- 如果里面包含Functions相关的部署命令,直接删除或注释掉;
- 如果需要保留预部署操作,只保留Hosting相关步骤(比如构建静态文件),示例:
{ "hosting": { "predeploy": ["npm run build"] } }
2. 更新Firebase CLI到最新版
执行命令更新CLI,避免旧版本的bug:
npm install -g firebase-tools
3. 明确指定Hosting站点(多站点项目)
如果你的项目有多个Hosting站点,要指定具体的站点ID,避免误操作:
firebase deploy --only hosting:你的站点ID --token %FIREBASE_TOKEN%
站点ID可以在Firebase控制台的Hosting页面查看,或者在firebase.json的Hosting配置里找site字段的值。
4. 临时跳过预部署脚本(应急用)
如果不想修改配置,部署时可以加--no-predeploy参数直接跳过预部署脚本:
firebase deploy --only hosting --no-predeploy --token %FIREBASE_TOKEN%
内容的提问来源于stack exchange,提问作者EzeTeja
相关产品推荐
相关产品推荐

