Firebase CLI部署TypeScript云函数时lint脚本执行失败如何解决
问题根因
你遇到的报错由两个核心问题导致:
- 实际执行的代码检查命令与项目配置不匹配:项目已经配置了ESLint作为代码检查工具,但部署流程里执行的是已弃用的TSLint命令,且你的项目依赖中没有安装TSLint,所以抛出找不到tslint命令的错误。
- Windows系统下Firebase CLI预置的部署前命令格式不兼容:默认的
&&连接符在Windows的命令行spawn调用中识别失败,触发ENOENT报错。
解决方案
按以下步骤依次操作即可解决:
确认函数目录下的package.json配置正确
进入项目的functions文件夹,打开package.json,确认scripts段的lint命令为:"lint": "eslint --ext .js,.ts ."如存在
tslint.json文件直接删除,你的项目用ESLint不需要该配置。修改根目录firebase.json的预部署配置
打开项目根目录的firebase.json文件,将functions段的predeploy配置修改为数组形式适配Windows环境:{ "functions": { "source": "functions", "predeploy": [ "npm --prefix \"%RESOURCE_DIR%\" run lint", "npm --prefix \"%RESOURCE_DIR%\" run build" ] } }重装依赖确保工具包完整
在functions目录下执行命令安装所有依赖:npm install本地验证命令有效性
还是在functions目录下依次执行以下命令,确认无报错:npm run lint npm run build重新执行部署
回到项目根目录执行部署命令即可:firebase deploy --only functions
如果需要临时跳过检查快速测试部署,可以执行firebase deploy --only functions --force跳过预部署检查,但不建议长期使用该方式。
内容的提问来源于stack exchange,提问作者shab1r
相关产品推荐
相关产品推荐

