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

Netlify部署Puppeteer函数失败:无法获取chromium.executablePath

问题解决:Netlify无服务器函数中Puppeteer启动报错TypeError

问题概述

部署到Netlify的Puppeteer无服务器函数触发崩溃,错误信息如下:

TypeError - The "file" argument must be of type string. Received function executablePath

错误栈指向函数启动时executablePath参数类型非法,本地运行正常但云端执行失败。

根本原因

从你输出的chromium.executablePath内容可以明确:它是一个异步方法(函数),而非直接返回路径的属性。你代码中await chromium.executablePath的写法没有调用该方法,得到的是函数本身而非解析后的路径字符串,导致Puppeteer无法识别正确的浏览器可执行文件路径。

修复方案

修改代码中executablePath的赋值逻辑,显式调用chromium.executablePath()方法(注意添加括号):

const chromium = require("@sparticuz/chromium");
const puppeteer = require('puppeteer-core');

chromium.setHeadlessMode = true; 
chromium.setGraphicsMode = false;

exports.handler = async function (event, context) {
  // 先调用executablePath方法获取有效路径
  const chromeExecPath = process.env.CHROME_EXECUTABLE_PATH || await chromium.executablePath();
  
  const browser = await puppeteer.launch({
    args: chromium.args,
    defaultViewport: chromium.defaultViewport,
    executablePath: chromeExecPath,
    headless: chromium.headless,
  });

  await browser.close();

  return {
      statusCode: 200,
      body: JSON.stringify({
          status: "The 'Element' function works!"        
      })
    };
}

补充说明

本地环境可能因缓存或依赖版本特性,意外兼容了错误写法,但云端环境严格遵循语法要求,必须通过调用方法才能正确获取Chromium二进制文件的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:34:54