Skip to content

Commit

Permalink
docs: Improve clarity of "Loading and configuring" (#1323)
Browse files Browse the repository at this point in the history
* docs: Improve clarity of "Loading and configuring"

* Update README.md

Co-authored-by: Linus Unnebäck <linus@folkdatorn.se>

Co-authored-by: Linus Unnebäck <linus@folkdatorn.se>
  • Loading branch information
serverwentdown and LinusU committed Nov 5, 2021
1 parent a3a5b63 commit 37ac459
Showing 1 changed file with 29 additions and 8 deletions.
37 changes: 29 additions & 8 deletions README.md
Expand Up @@ -111,21 +111,21 @@ npm install node-fetch

## Loading and configuring the module

### ES Modules (ESM)

```js
import fetch from 'node-fetch';
```

If you want to patch the global object in node:
### CommonJS

```js
import fetch from 'node-fetch';
`node-fetch` from v3 is an ESM-only module - you are not able to import it with `require()`.

if (!globalThis.fetch) {
globalThis.fetch = fetch;
}
```
If you cannot switch to ESM, please use v2 which remains compatible with CommonJS. Critical bug fixes will continue to be published for v2.

`node-fetch` is an ESM-only module - you are not able to import it with `require`. We recommend you stay on v2 which is built with CommonJS unless you use ESM yourself. We will continue to publish critical bug fixes for it.
```sh
npm install node-fetch@2
```

Alternatively, you can use the async `import()` function from CommonJS to load `node-fetch` asynchronously:

Expand All @@ -134,6 +134,27 @@ Alternatively, you can use the async `import()` function from CommonJS to load `
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));
```

### Providing global access

To use `fetch()` without importing it, you can patch the `global` object in node:

```js
// fetch-polyfill.js
import fetch from 'node-fetch';

if (!globalThis.fetch) {
globalThis.fetch = fetch;
globalThis.Headers = Headers;
globalThis.Request = Request;
globalThis.Response = Response;
}

// index.js
import './fetch-polyfill'

// ...
```

## Upgrading

Using an old version of node-fetch? Check out the following files:
Expand Down

0 comments on commit 37ac459

Please sign in to comment.