You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GAE标准环境Ruby30集成Grover遇Puppeteer依赖错误求助

在GAE Ruby3.0标准环境集成Grover时Puppeteer依赖错误的解决建议

尝试在Google App Engine(GAE)标准环境的Ruby3.0项目中集成Grover生成PDF时,出现以下错误:

Grover::DependencyError (Cannot find module 'puppeteer'. The module was found in '/workspace/package.json' however, please run 'npm install' from '/workspace')

开发环境正常运行,已在package.json的dependencies中添加"puppeteer": "^21.7.0",并尝试配置了gcp-build脚本和Puppeteer缓存目录,但问题依旧。

可行解决思路

1. 迁移Puppeteer至Cloud Function(已验证有效)

将Puppeteer的PDF生成逻辑单独抽离到Cloud Function中,GAE项目通过HTTP请求调用该函数完成PDF生成。这种方式避开了GAE标准环境中Node.js依赖安装和运行的限制,是直接有效的解决方案。

2. 调整GAE构建配置确保npm依赖正确安装

  • 检查app.yaml配置,添加Node环境相关变量(Ruby项目需依赖Node运行Puppeteer):
    runtime: ruby30
    env_variables:
      NODE_ENV: production
    
  • 修改gcp-build脚本,明确加入npm install步骤,确保GAE构建时安装Node依赖:
    "scripts": {
      "gcp-build": "npm install && npm run build && npx @puppeteer/browsers install chromium --path /workspace/puppeteer"
    }
    
  • 确保package.json和package-lock.json已提交至代码仓库,GAE需要依赖锁文件精准安装包。

3. 指定Grover的Puppeteer执行路径

在Grover初始化时手动指定Chromium的实际路径,避免自动查找失败:

Grover.configure do |config|
  config.options = {
    executable_path: '/workspace/node_modules/puppeteer/.local-chromium/linux-*/chrome-linux/chrome'
  }
end

注意将路径中的linux-*替换为实际的Chromium版本目录。

4. 切换至GAE灵活环境

若标准环境的限制无法绕过,可考虑切换到GAE灵活环境。该环境对自定义依赖和运行环境的支持更宽松,能更便捷地安装和运行Puppeteer。

内容的提问来源于stack exchange,提问作者Mauro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 01:27:09