提问人:Bidou 提问时间:11/13/2023 最后编辑:Mark RotteveelBidou 更新时间:11/15/2023 访问量:239
如何强制 Puppeteer 在 Windows 上下载 Linux 版本的 Chromium?[关闭]
How can I force Puppeteer to download a Linux version of Chromium on Windows? [closed]
问:
我花了 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 文件夹中的文件。
我觉得这不可能是正确的方法。
我花了很长时间才找到 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
再次尝试了我的功能
成功了
正确的方法是什么?
答: 暂无答案
评论