Windows11下安装Puppeteer遇下载失败及配置报错求助
安装Puppeteer时遇到Chrome下载失败及配置错误的问题
按照安装指南安装Puppeteer时,几秒后出现报错:
.../node_modules/puppeteer postinstall$ node install.mjs │ PUPPETEER_DOWNLOAD_HOST is deprecated. Use PUPPETEER_DOWNLOAD_BASE_URL instead. │ ERROR: Failed to set up Chrome r119.0.6045.105! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download. │ Error: Download failed: server returned code 404. URL: https://npm.taobao.org/mirrors/119.0.6045.105/win64/chrome-win64.zip │ at file:///C:/Users/Asus/Desktop/WorkSpace/Projects/test/Server/node_modules/.pnpm/@puppeteer+browsers@1.9.0/node_modules/@puppeteer/browsers/lib/esm/httpUtil.js:74:31 │ at ClientRequest.requestCallback (file:///C:/Users/Asus/Desktop/WorkSpace/Projects/torob/Server/node_modules/.pnpm/@puppeteer+browsers@1.9.0/node_modules/@puppeteer/browsers/lib/esm/httpUtil.js:52:13) │ at Object.onceWrapper (node:events:629:26) │ at ClientRequest.emit (node:events:514:28) │ at HTTPParser.parserOnIncomingClient (node:_http_client:693:27) │ at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17) │ at TLSSocket.socketOnData (node:_http_client:535:22) │ at TLSSocket.emit (node:events:514:28) │ at addChunk (node:internal/streams/readable:376:12) │ at readableAddChunk (node:internal/streams/readable:349:9) └─ Failed in 5.1s at C:\Users\Asus\Desktop\WorkSpace\Projects\test\Server\node_modules\.pnpm\puppeteer@21.6.0\node_modules\puppeteer ELIFECYCLE Command failed with exit code 1.
尝试用npm config set puppeteer_skip_chromium_download true解决,却提示:
npm ERR! `puppeteer_skip_chromium_download` is not a valid npm option
环境版本:node 20.9.0、npm 10.2.4、yarn 1.22.19、pnpm 8.11.0(三种包管理器均已尝试),注:Puppeteer-core可正常安装。
解决方案
正确跳过Chrome下载:
puppeteer_skip_chromium_download不是npm配置项,而是环境变量,不同终端设置方式如下:- Windows(cmd):先执行
set PUPPETEER_SKIP_DOWNLOAD=true,再运行安装命令 - Windows(PowerShell):先执行
$env:PUPPETEER_SKIP_DOWNLOAD=true,再运行安装命令 - Linux/macOS:直接执行
PUPPETEER_SKIP_DOWNLOAD=true npm install puppeteer(单次生效)
- Windows(cmd):先执行
修复Chrome下载404问题:淘宝镜像中对应版本的Chrome包不存在,可更换下载源:
设置环境变量PUPPETEER_DOWNLOAD_BASE_URL=https://cdn.npmmirror.com/binaries/chrome-for-testing,再执行安装命令;或者使用官方源https://storage.googleapis.com/chrome-for-testing-public。替代方案:使用Puppeteer-core:既然Puppeteer-core可正常安装,可手动指定本地Chrome/Edge路径使用:
import puppeteer from 'puppeteer-core'; (async () => { const browser = await puppeteer.launch({ // 替换为你的Chrome/Edge可执行文件路径,比如Windows下可能是 "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" executablePath: '你的浏览器可执行文件路径', }); const page = await browser.newPage(); // 后续操作... await browser.close(); })();
内容的提问来源于stack exchange,提问作者Amir Rabiee
相关产品推荐
相关产品推荐

