安装 Puppeteer 时跳过 Chromium 下载

2023-01-22 08:26:07Puppeteerwindows

由于Puppeteer包含的Chromium的文件体积过大(大于100Mb),并且可以自定义Chromium的引用路径(可以配置为已安装的chrome.exe路径),
所以考虑在安装Puppeteer跳过Chromium的下载。

默认情况下,安装Puppeteer:

npm install puppeteer

yarn add puppeteer

会自动下载Chromium:

Downloading Chromium r938248 - 174.1 Mb [========            ] 41% 844.1s
Chromium downloaded to /xx

所以,跳过Chromium下载方法有两种:

1. 只安装核心包

yarn add puppeteer-core

然后调用时,通过executablePath配置Chromium/chrome.exe/chrome.app路径即可

export const browserGet = async (url) => {
    const browser = await puppeteer.launch({
        executablePath: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
    })
    const page = await browser.newPage()
    await page.goto(url)
    await page.screenshot({path: 'test.png'});
    await browser.close()
    return el;
}

2. 配置环境变量

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm instlal puppeteer

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn add puppeteer

mac下,需要添加env

env PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true yarn add puppeteer

然后就会在控制台看到:

**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 重新安装。

其他方式配置环境变量PUPPETEER_SKIP_CHROMIUM_DOWNLOAD:

a. 通过package.json来配置

{
  "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD": true
}

b. 通过修改.npmrc来配置

在.npmrc文件中,添加:

PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true

c. 通过shell修改npm配置.nrmrc

npm config set -g PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true

d. mac通过shell修改环境变量

$env:PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=0