puppeteer/packages/puppeteer-core/compat
jrandolf f42336cf83
feat: separate puppeteer and puppeteer-core (#9023)
This PR moves the puppeteer source code into separate mono-repo packages:

- `puppeteer` and `puppeteer-core` are now separated into their own
packages.
- `puppeteer-core` has a new exports called `puppeteer-core/internal`
for internal usage.

Tests and various tools have been updated to accommodate the migration.
2022-10-05 14:17:03 +02:00
..
cjs feat: separate puppeteer and puppeteer-core (#9023) 2022-10-05 14:17:03 +02:00
esm feat: separate puppeteer and puppeteer-core (#9023) 2022-10-05 14:17:03 +02:00
README.md feat: separate puppeteer and puppeteer-core (#9023) 2022-10-05 14:17:03 +02:00

Compatibility layer

This directory provides an additional compatibility layer between ES modules and CommonJS.

Why?

Both ./cjs/compat.ts and ./esm/compat.ts are written as ES modules, but ./cjs/compat.ts can additionally use NodeJS CommonJS globals such as __dirname and require while these are disabled in ES module mode. For more information, see Differences between ES modules and CommonJS.

Adding exports

In order to add exports, two things need to be done:

  • The exports must be declared in src/compat.ts.
  • The exports must be realized in ./cjs/compat.ts and ./esm/compat.ts.

In the event compat.ts becomes too large, you can place declarations in another file. Just make sure ./cjs, ./esm, and src have the same structure.