# puppeteer-vs-puppeteer-core
# puppeteer vs puppeteer-core
自 v1.7.0 以來的每個版本我們都發布了兩個包:
- [puppeteer](https://www.npmjs.com/package/puppeteer)
- [puppeteer-core](https://www.npmjs.com/package/puppeteer-core)
`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` 包。
然而, 如果是下面這些情況那你需要使用 `puppeteer-core`:
- 你正在構建 DevTools 協議頂部的另一個最終用戶產品或庫。例如,可以使用 `puppeteer-core` 構建 PDF 生成器并編寫下載 [`headless_shell`](https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md) 的自定義`install.js`腳本而不是 Chromium 來節省磁盤空間。
- 你正在打包 Puppeteer 用在 Chrome 擴展應用或瀏覽器中以使用 DevTools 協議,因為下載額外的 Chromium 二進制文件不是必須的。
當使用 `puppeteer-core` 時,使用下面這行代替原來的使用方式:
```
const puppeteer = require('puppeteer-core');
```
puppeteer.js中文網|puppeteer-vs-puppeteer-core
puppeteer.js中文文檔, puppeteer chrome, puppeteer firefox, puppeteer api 中文文檔
puppeteer.js中文網包含了Puppeteer中文文檔,最新資訊,應用案例等。Puppeteer 是一個 Node 庫,它提供了一個高級 API 來通過 DevTools 協議控制 Chromium 或 Chrome。
- Introduction
- 版本記錄
- 概要
- puppeteer-vs-puppeteer-core
- 環境變量
- error-handling
- working-with-chrome-extensions
- class:puppeteer
- class:browserfetcher
- class:browser
- class:page
- class:worker
- class:accessibility
- class:keyboard
- class:mouse
- class:touchscreen
- class:tracing
- class:dialog
- class:consolemessage
- class:frame
- class:executioncontext
- class:jshandle
- class:elementhandle
- class:request
- class:response
- class:securitydetails
- class:target
- class:cdpsession
- class:coverage
- class:timeouterror