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

在AWS Lambda运行Puppeteer报错:无法找到指定模块

解决AWS Lambda中Puppeteer模块找不到的问题

错误原因

你遇到的Cannot find module '/app/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Browser'错误,核心是chrome-aws-lambda与puppeteer-core版本不兼容:

  • chrome-aws-lambda@10.1.0基于旧版Puppeteer(v10)开发,内部依赖的模块路径是旧版结构
  • 你安装的puppeteer-core@21.1.1是高版本,模块目录结构已大幅调整,旧版chrome-aws-lambda无法识别新路径

解决方案

方案一:降级puppeteer-core到兼容版本

  1. 修改package.json中的puppeteer-core版本为与chrome-aws-lambda@10.1.0匹配的v10.x版本:
    "dependencies": {
      "chrome-aws-lambda": "^10.1.0",
      "handlebars": "^4.7.8",
      "node-fetch": "2.7.0",
      "puppeteer-core": "^10.4.0"
    }
    
  2. 删除本地的node_modules文件夹和package-lock.json文件
  3. 重新安装依赖:
    npm install
    
  4. 重新测试代码

方案二:改用维护中的替代包(推荐)

原chrome-aws-lambda已停止维护,官方推荐使用@sparticuz/chromium,它支持最新版Puppeteer:

  1. 卸载旧依赖:
    npm uninstall chrome-aws-lambda puppeteer-core
    
  2. 安装兼容的新版本(npm会自动匹配对应版本):
    npm install @sparticuz/chromium puppeteer-core
    
  3. 修改代码中的引入和初始化逻辑:
    const chromium = require("@sparticuz/chromium");
    const puppeteer = require("puppeteer-core");
    
    const generateImg = async (reviewId) => {
      let browser = null;
      let result = null;
    
      try {
        const executablePath = await chromium.executablePath();
        browser = await puppeteer.launch({
          args: chromium.args,
          executablePath: executablePath,
          headless: chromium.headless,
        });
    
        const page = await browser.newPage();
        await page.goto("https://www.example.com");
    
        result = await page.screenshot();
      } catch (error) {
        console.error("Error:", error);
      } finally {
        if (browser !== null) {
          await browser.close();
        }
      }
    
      return result;
    };
    
    注意:新版@sparticuz/chromium的executablePath是函数,需要调用await chromium.executablePath()而非直接访问属性。

额外提示

本地测试时,如果遇到浏览器启动失败,可临时安装完整的puppeteer包(代替puppeteer-core),它会自动下载对应版本的Chrome浏览器,方便本地调试:

npm install puppeteer --save-dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 05:44:50