puppeteer vs puppeteer-core
自 v1.7.0 以后的每个版本,我们都会发布两个软件包:
puppeteer
是用于浏览器自动化的产品。安装后,它将下载一个版本的Chromium
,然后使用 puppeteer-core
驱动。 作为最终用户产品,puppeteer
支持大量方便的PUPPETEER _ *
env 变量来调整其行为。
puppeteer-core
是一个库,可以帮助驱动任何支持 DevTools 协议的东西。 安装了puppeteer-core
不会下载 Chromium。 作为库,puppeteer-core
是通过其编程接口完全驱动的,而忽略了所有PUPPETEER_ *
env 变量。
总结起来,puppeteer-core
和puppeteer
之间的唯一区别是:
puppeteer-core
在安装后不会自动下载 Chromium。puppeteer-core
忽略所有PUPPETEER _ *
env 变量。
在大多数情况下,使用puppeteer
包会很好。
不过,如果你是在 DevTools 协议的基础上构建另一个终端用户产品或库,你应该使用puppeteer-core
:
- 你要在 DevTools 协议的基础上构建另一个终端用户产品或库。例如,你可以使用
puppeteer-core
构建一个PDF生成器,然后编写一个自定义的install.js
脚本,下载headless_shell
而不是 Chromium 来节省磁盘空间。 - 您正在将 Puppeteer 捆绑在 Chrome 插件 / 浏览器中使用 DevTools 协议,在这里不需要下载额外的 Chromium 二进制文件。
- 您正在构建一套工具,其中
puppeteer-core
是其中的成分之一,并且您希望将install.js
脚本的执行推迟到即将使用 Chromium 之前。
使用puppeteer-core
时,请记住更改 include 行:
const puppeteer = require('puppeteer-core');
然后,您需要使用显式调用puppeteer.connect([options])
或puppeteer.launch([options])
executablePath
选项。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。