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

在Heroku部署Puppeteer+Node.js应用时遇浏览器缺失错误求助

Heroku部署Puppeteer找不到Chrome的解决方法

核心问题分析

你遇到的错误是因为Puppeteer无法定位到对应的Chrome/Chromium可执行文件,大概率是依赖包配置、路径指定或buildpack顺序出了问题。


1. 正确配置Chrome可执行文件路径

如果你的项目使用puppeteer-core(该包不会自动下载Chromium),必须手动指定Heroku上Chrome的路径。Heroku的Puppeteer buildpack已经预装了Chrome,直接用环境变量或固定路径即可:

const browser = await puppeteer.launch({
  headless: "new", // 推荐使用新版无头模式,适配高版本Chrome
  args: ["--no-sandbox", "--disable-setuid-sandbox"], // 必须添加这两个参数规避权限问题
  executablePath: process.env.CHROME_BIN || "/app/.apt/usr/bin/google-chrome-stable"
});

CHROME_BIN是Puppeteer buildpack自动设置的环境变量,优先使用它更可靠。

2. 调整Buildpack顺序

Node.js buildpack必须放在Puppeteer buildpack之前,确保先安装npm依赖,再部署Chrome。执行以下命令修正顺序:

heroku buildpacks:clear
heroku buildpacks:add heroku/nodejs
heroku buildpacks:add jontewks/puppeteer

3. 检查package.json配置

  • 若使用puppeteer(非core版本),不要设置PUPPETEER_SKIP_DOWNLOAD=true,否则会跳过Chromium的自动下载。
  • 若使用puppeteer-core,可以设置PUPPETEER_SKIP_DOWNLOAD=true减少部署体积,但必须保证executablePath配置正确。

4. 清理Heroku缓存重新部署

缓存可能导致依赖或Chrome版本不匹配,执行以下命令清理缓存后重新部署:

heroku plugins:install heroku-repo
heroku repo:purge_cache
git commit --allow-empty -m "Purge cache to fix Chrome path issue"
git push heroku main

内容的提问来源于stack exchange,提问作者kaan.west

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:46:00