回退Cloud Functions依赖的Puppeteer版本后仍未解决升级引发的错误
Cloud Functions Puppeteer回退版本后仍报错的解决办法
问题根源
你遇到的Could not find expected browser (chrome) locally. Run npm install to download the correct Chromium revision (1045629)错误,是因为Cloud Functions会缓存部署时的依赖包。即便回退Puppeteer版本、删除函数重新部署,旧版本(19.0)对应的Chromium缓存可能仍被复用,导致找不到18.2.1版本所需的浏览器文件。
具体解决步骤
本地彻底清理依赖
- 删除本地
node_modules文件夹:rm -rf node_modules - 删除
package-lock.json(npm用户)或yarn.lock(yarn用户)文件 - 重新安装指定版本:
npm install puppeteer@18.2.1,确保package.json里的版本写死为18.2.1,不要带^或~这类自动升级的前缀
- 删除本地
强制跳过Cloud Functions部署缓存
- 使用gcloud部署时添加
--no-cache参数:gcloud functions deploy 你的函数名 --runtime nodejs16 --no-cache(替换为你的函数名和对应Node.js运行时版本) - 使用Firebase CLI部署时添加
--no-cache参数:firebase deploy --only functions:你的函数名 --no-cache
- 使用gcloud部署时添加
验证本地依赖版本
执行npm list puppeteer,确认输出的版本为18.2.1,避免lock文件残留旧版本配置
备选方案
如果上述步骤无效,可尝试给函数添加一个临时环境变量(比如FORCE_DEPLOY=1),部署完成后再删除该变量,这样会触发全新的部署流程,彻底绕过缓存。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

