来源: 安装 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 重新安装。