Heroku部署Node+Puppeteer报错:无法找到Chromium
Heroku部署Puppeteer找不到Chromium的解决方案
1. 调整构建包顺序
Heroku构建包的执行顺序直接影响Chromium的安装,必须先添加官方Node.js构建包,再添加Puppeteer专用构建包。执行以下命令:
heroku buildpacks:clear heroku buildpacks:add heroku/nodejs heroku buildpacks:add jontewks/puppeteer
2. 手动指定Chromium路径
在你的index.js中明确指定Heroku上Chromium的固定安装路径,同时保留必要的启动参数:
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'], // 强制指定Heroku环境下的Chromium路径 executablePath: '/app/.apt/usr/bin/google-chrome-stable' }); // 你的业务代码逻辑 })();
3. 修正package.json配置
确保Puppeteer版本与缺失的Chromium版本(1056772)匹配(对应Puppeteer 19.x系列),同时避免跳过浏览器安装:
{ "dependencies": { "puppeteer": "^19.0.0" }, "scripts": { "start": "node index.js", "postinstall": "npm install puppeteer" } }
4. 清除缓存重新构建
缓存残留可能导致旧版本Chromium干扰,执行以下操作重置构建环境:
heroku builds:cache:purge git commit --allow-empty -m "触发缓存清理后的重新构建" git push heroku main
5. 配置环境变量(可选)
通过环境变量统一管理Chromium路径,避免代码硬编码:
heroku config:set PUPPETEER_EXECUTABLE_PATH=/app/.apt/usr/bin/google-chrome-stable
之后代码中可以改为:
executablePath: process.env.PUPPETEER_EXECUTABLE_PATH
内容的提问来源于stack exchange,提问作者RainMan
相关产品推荐
相关产品推荐

