Firebase Hosting部署错误:检测到0个文件(附firebase.json)
Firebase Hosting部署提示「检测到0个文件」的解决办法
问题核心分析
从配置和日志来看,问题集中在ignore规则错误、JSON语法错误以及predeploy脚本路径不匹配这几个点,导致Firebase无法识别要部署的dist文件。
具体修复步骤
1. 修复JSON语法错误
你的firebase.json中hosting的ignore数组最后一项多了冗余逗号,这会导致JSON解析失败,Firebase无法正确读取配置:
"ignore": [ "*", "!dist/", "!dist/*", // 删掉这个多余的逗号 ],
2. 修正ignore规则
原规则!dist/+!dist/*无法正确匹配dist目录下的所有内容,改用!dist/**来覆盖dist目录及其下所有文件/子目录:
"ignore": [ "*", "!dist/**" ],
解释:*忽略hosting目录下所有内容,!dist/**反向允许dist目录下的全部资源,确保Firebase能检测到目标文件。
3. 校准predeploy脚本路径
hosting配置中的$RESOURCE_DIR指向你设置的public目录(即hosting文件夹),如果你的package.json在项目根目录而非hosting目录下,当前脚本会找不到npm命令,导致build未执行、dist目录未生成:
- 若package.json在项目根目录,修改predeploy脚本:
"predeploy": [ "npm run lint", "npm run build" ] - 若package.json确实在hosting目录下,要确认该目录下的package.json包含
lint和build脚本,且build输出路径为hosting/dist。
4. 确认目录结构匹配
确保项目目录结构与配置对应:
项目根目录 ├── firebase.json ├── hosting/ # 对应public字段的目录 │ └── dist/ # build生成的静态文件必须在此目录内
如果build生成的dist在项目根目录,要么把public字段改成"public": "dist",要么调整build脚本的输出路径到hosting/dist。
验证修复
修改后执行firebase deploy --only hosting --debug查看详细日志,确认predeploy脚本正常执行、dist目录生成,且Firebase能检测到文件。
内容的提问来源于stack exchange,提问作者Fasco
相关产品推荐
相关产品推荐

