安装 Puppeteer 时跳过 Chromium 下载

发表时间

Puppeteer 包含的 Chromium 因为体积过大,我们在升级 Puppeteer 时,希望可以跳过 Chromium 重新安装,本文介绍这种方法。

下载Chromium

默认情况下,下载 puppeteer 的同时,执行

$ npm i puppeteer

会自动下载 Chromium,在命令行里会看到下面的日志:

Downloading Chromium r672088 - 108 Mb [==========          ] 49% 25.7s
Chromium downloaded to /你的路径

看到这些,这说明 Chromium 已经下载完成。

另外,如果本地已经有了 Chrome/Chromium 或者 准备用远程的 Chrome/Chromium,可以只安装 Puppeteer的核心功能。运行下面的命令:

$ npm i puppeteer-core

这样安装的 puppeteer 将不包含 Chromium

二者关系

Puppeteer是在Chromium上层的脚本,以 CDP 协议控制 Chromium 的行为。二者关系大致如下图。

跳过下载Chromium

由于 Chromium 体积过大(>100M),有时候本地已经安装了 Chromium,在后续升级 Puppeteer 时,不需要重新下载Chromium,这时候需要跳过 Chromium 的下载。

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD

跳过的方法是:

$ PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm i puppeteer

其实,只要有 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 这个环节变量存在(无论其值是不是 true ),都不会下载 Chromium. 跳过的时候,会提示下面的文字

**INFO** Skipping Chromium download. "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" environment variable was found.

注意

如果第一次安装 Puppeteer 的时候,使用了 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 环境变量,那么安装的 Puppeteer 中不会包含 Chromium. 这是即使删除 PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 变量(unset),再次执行 npm i puppeteer 命令也不会重新下载 Chromium了,需要删除 puppeteer 重新安装。


  欢迎到 留言板 写下你的看法。
  本页面内容采用 署名协议 CC-BY 授权。欢迎转载,请保留原文链接