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

macOS下Puppeteer启动报错Socket路径过长怎么解决?

解决方案

方案1:手动指定短路径的用户数据目录(最稳妥,无需修改其他配置)

Puppeteer默认会读取当前环境的TMPDIR作为Chromium临时数据目录的根路径,你只需要在启动参数里手动指定一个短路径的用户数据目录,即可绕开Shortcuts留下的长路径:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false, // show the browser
    devtools: true, // open dev tools
    defaultViewport: null, // ensure that browser viewport fills the window
    args: [
      '--disable-web-security', // disable CORS (be careful)
      // 新增以下参数,指定短路径的临时数据目录,路径可自定义
      '--user-data-dir=/tmp/chrome-puppeteer'
    ],
  });

  // navigate to the Angular page
  const page = await browser.newPage();
  page.goto('http://localhost:4200');
})();

方案2:重置环境变量+清理残留临时文件

该问题本质是你的Node进程继承了被Shortcuts修改过的TMPDIR环境变量,残留的缓存目录也会触发路径读取:

  • 先在脚本开头重置临时目录环境变量:
// 放在脚本最顶部,早于puppeteer.launch执行
process.env.TMPDIR = '/tmp/';
  • 清理残留的Shortcuts相关Chromium缓存目录,终端执行以下命令:
rm -rf /var/folders/*/*/T/com.apple.shortcuts.mac-helper/.org.chromium.Chromium.*

方案3:升级Puppeteer到最新稳定版

v19.0.0及以上版本的Puppeteer已经针对macOS的套接字路径长度限制做了适配,会自动生成更短的临时目录路径,无需额外配置即可解决该问题,执行升级命令即可:

npm install puppeteer@latest
# 或者用yarn
yarn add puppeteer@latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:15:03