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

使用Puppeteer v22.8.1与Node v18.19.0遇语法错误,需升级Node吗?

Node v18.19.0 + Puppeteer v22.8.1 语法错误问题解答

问题场景

在Node v18.19.0环境下使用Puppeteer v22.8.1时,出现以下语法错误:

/app/node_modules/puppeteer-core/lib/cjs/puppeteer/util/disposable.js:9
Symbol.dispose ??= Symbol('dispose');
               ^^^

SyntaxError: Unexpected token '??='
    at wrapSafe (internal/modules/cjs/loader.js:1029:16)
    at Module._compile (internal/modules/cjs/loader.js:1078:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
    at Module.load (internal/modules/cjs/loader.js:979:32)
    at Function.Module._load (internal/modules/cjs/loader.js:819:12)
    at Module.require (internal/modules/cjs/loader.js:1003:19)
    at require (internal/modules/cjs/helpers.js:107:18)
    at Object.<anonymous> (/app/node_modules/puppeteer-core/lib/cjs/puppeteer/common/EventEmitter.js:13:25)
    at Module._compile (internal/modules/cjs/loader.js:1114:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)

问题原因与解决方案

错误核心是Puppeteer v22.8.1依赖了Symbol.dispose特性,虽然代码中的??=运算符在Node v14.17.0+就已支持,但Symbol.dispose是Node v20.4.0及以上版本才默认启用的特性,Node v18全系列(包括v18.19.0)均不支持该特性。

因此Node v18.19.0无法解决这个问题,你有两种可行方案:

  • 升级到Node v20.4.0或更高版本,完全适配Puppeteer v22.8.1的依赖要求;
  • 降级Puppeteer到v21.x及以下版本,这类版本兼容Node v18环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 22:40:02