由于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