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

Heroku上Puppeteer指定Chromium可执行路径问题求助

在Heroku上为Puppeteer指定Chromium可执行路径的方法

核心解决逻辑

你安装的Heroku Puppeteer buildpack已经把Chromium固定部署到了特定路径,无需手动找位置,直接用环境变量或固定路径配置即可。

具体实现步骤

1. 优先用环境变量读取路径

buildpack会自动设置PUPPETEER_EXECUTABLE_PATH环境变量,直接在代码里调用就行,这是最稳妥的方式:

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({
    executablePath: process.env.PUPPETEER_EXECUTABLE_PATH,
    // 必须加这些启动参数,Heroku容器没有沙箱权限,不加会启动失败
    args: [
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--disable-dev-shm-usage'
    ]
  });
  // 你的业务代码逻辑
  await browser.close();
})();

2. 手动指定固定路径(备用方案)

如果环境变量没生效,buildpack默认把Chromium安装在/app/.apt/usr/bin/google-chrome,直接写这个路径也能生效:

executablePath: '/app/.apt/usr/bin/google-chrome'

3. 确认依赖配置

确保你的package.json里安装的是puppeteer-core而非全量puppeteer(因为buildpack已经提供了Chromium,全量包会重复安装导致冲突),依赖配置示例:

{
  "dependencies": {
    "puppeteer-core": "^21.0.0"
  }
}

额外提醒

  • 每次修改配置后,记得重新推送代码到Heroku,确保新配置生效
  • 如果还是启动失败,检查Heroku控制台的日志,排查是否有其他权限或依赖问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 13:10:46