Firebase部署返回非零退出码错误,调整predeploy配置仍无法解决
问题解决方案
1. 优先修复代码语法错误
eslint抛出的Parsing error: Unexpected token :是最直接的报错原因,你在index.js中定义云函数的结尾符号写错了:
原代码最后一行是:
):
请将末尾的冒号替换为半角分号,修改后为:
);
修改后先在本地functions目录执行npm run lint验证语法是否正常,确认没有报错后再尝试部署。
2. 优化firebase.json预部署配置
Windows系统对$RESOURCE_DIR变量的识别存在兼容问题,如果你修改为%RESOURCE_DIR%后仍报错,可以尝试以下两种方案:
- 方案A:跳过lint检查(适合开发测试阶段)
直接删除predeploy的配置项,或者将其置空:
"predeploy": []
- 方案B:保留lint检查,硬编码路径
直接写死functions目录的相对路径,避免环境变量解析出错:
"predeploy": [ "npm --prefix functions run lint" ]
3. 解决ENOENT路径报错
Windows7环境下如果仍出现路径找不到的报错,可以尝试以下操作:
- 优先使用PowerShell执行部署命令,避免cmd的路径解析缺陷
- 先手动进入functions目录执行
npm install重新安装一遍所有依赖,避免依赖缺失 - 确认安装的firebase-tools版本兼容Windows7,过高版本的firebase-tools已经停止支持Windows7,可以降级到v9.x的兼容版本
内容的提问来源于stack exchange,提问作者Nặśř' Eddíŋě
相关产品推荐
相关产品推荐

