如何强制 Puppeteer 在 Windows 上下载 Linux 版本的 Chromium?[关闭]

How can I force Puppeteer to download a Linux version of Chromium on Windows? [closed]

提问人:Bidou 提问时间:11/13/2023 最后编辑:Mark RotteveelBidou 更新时间:11/15/2023 访问量:239

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

6天前关闭。

这篇文章在6天前被编辑并提交审核。

我花了 11 个小时来解决这个问题(除其他外,但仍然主要是为了这个),我意识到,在做 npm i puppeteer 时,它会根据我正在使用的操作系统安装 Chromium 版本,就我而言,Win64。

但是由于我正在使用 Google Cloud Functions,因此我需要获得 Linux64 版本。 所以我一直收到错误:找不到Chrome(版本119.0.6045.105)。如果出现以下任一情况,则可能会发生这种情况。在运行脚本之前,您没有执行安装(例如 npm install)或 2.缓存路径配置不正确(即:/workspace/.cache/puppeteer)。

因此,我不得不手动查找正确兼容的 Chromium 版本的 Linux64 版本,并手动重命名文件夹并替换 .cache/puppeteer/chrome 文件夹中的文件。

  1. 我觉得这不可能是正确的方法。

  2. 我花了很长时间才找到 Linux64 兼容版本的二进制文件,我最终使用了未谷歌搜索的 chromium 版本,因为这是我找到的唯一版本。

一切正常,但我想知道如何在未来的项目中向 Puppeteer 指定我想要 Linux64 版本,而不是基于我的操作系统的版本。

另外,作为一个额外的问题,我在哪里可以手动找到适用于 Linux64 的特定 tar.gz 未修改的 Chromium 版本?

我做了什么(我正在使用傀儡师来截取给定网站的屏幕截图):

  • 为我的项目创建了一个新文件夹

  • 运行Firebase登录

  • 运行 Firebase init。它创建了 Firebase 文件和“functions”文件夹

  • 移动到“functions”文件夹内

  • Ran npm i puppeteer

  • 运行firebase部署

  • 尝试了我的功能并得到“错误:找不到Chrome(版本119.0.6045.105)”。

  • 在互联网上查看并找到了这篇关于第 2 代功能的文章:https://hume.dev/articles/puppeteer-google-cloud-functions-v2/

  • 按照步骤在我的package.json的脚本部分添加“gcp-build”: “node node_modules/puppeteer/install.js”,并创建了一个.puppeteerrc.cjs文件来指定.cache文件夹路径

  • 运行npm uninstall puppeteer

  • 再次运行 npm i puppeteer

  • 然后我得到了一个 .cache 文件夹,里面有 Win64 Chromium 版本

  • 运行firebase部署

  • 仍然收到“错误:找不到 Chrome(版本 119.0.6045.105)”错误

  • 下载了对应的Linux Chromium版本,并替换了所有文件并重命名了文件夹

  • 再次运行 firebase deploy

  • 再次尝试了我的功能

  • 成功了

正确的方法是什么?

节点.js 谷歌云平台 傀儡师

评论


答: 暂无答案