在Heroku部署Node.js+Puppeteer应用时遇「找不到Chromium」错误求助
解决Heroku部署Puppeteer应用时的“Could not find Chromium”错误
确认buildpack顺序与正确性
确保先添加Puppeteer专用buildpack,再添加Node.js buildpack,执行以下命令:heroku buildpacks:add --index 1 https://github.com/jontewks/puppeteer-heroku-buildpack heroku buildpacks:add --index 2 heroku/nodejs手动指定Chromium执行路径
在Puppeteer启动配置中添加executablePath,同时补充避免内存问题的启动参数:const browser = await puppeteer.launch({ headless: true, args: [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage' // 解决Heroku临时内存不足问题 ], executablePath: process.env.CHROME_BIN || puppeteer.executablePath() });同时通过Heroku设置环境变量:
heroku config:set CHROME_BIN=/app/.apt/usr/bin/chromium-browser匹配Puppeteer版本与buildpack兼容性
部分新版本Puppeteer与旧buildpack存在兼容问题,可尝试降级到稳定版本:npm install puppeteer@19.11.1 --save清理Heroku缓存后重新部署
旧缓存可能导致依赖残留,执行缓存清理后重新推送代码:heroku builds:cache:purge git push heroku main检查Puppeteer依赖位置
确保puppeteer在package.json的dependencies字段中,而非devDependencies,Heroku生产环境不会安装开发依赖。
内容的提问来源于stack exchange,提问作者0xSandwich
相关产品推荐
相关产品推荐

