Using latest version of node-fetch is not supported
douglasward opened this issue · comments
Using the latest version of node-fetch (3.0.0) causes the following error when requiring it in a route.js file for example:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users/douglas/projects/go-elderjs/node_modules/node-fetch/src/index.js
require() of ES modules is not supported.
require() of /Users/douglas/projects/go-elderjs/node_modules/node-fetch/src/index.js from /Users/douglas/projects/go-elderjs/src/routes/events/route.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /Users/douglas/projects/go-elderjs/node_modules/node-fetch/package.json.
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1089:13)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
at Module.require (internal/modules/cjs/loader.js:961:19)
at require (internal/modules/cjs/helpers.js:92:18)
at Object.<anonymous> (/Users/douglas/projects/go-elderjs/src/routes/events/route.js:1:15)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12) {
code: 'ERR_REQUIRE_ESM'
}
Downloading to 2.6.5
"fixes" the error.
@douglasward Elder.js is written in cjs
and what this error is saying is that it can't be require
d it has to be imported.
Not possible with Elder.js current structure. Open to a PR to help resolve it, but currently don't have a business case for needing to upgrade to esm
yet. In fact one of the core packages we rely on doesn't support esm
yet so we'll have to wait a bit longer.
Thanks @nickreese. Do you think it would be worth noting this in the documentation? It references node-fetch
a few times. https://elderguide.com/tech/elderjs/#fetching-external-data.
I wanted to make a pull request, but I couldn't find a repo with the documentation checked into it
Here is the location to edit. Thank you for the PR: https://github.com/Elderjs/docs/blob/master/elderguide.com/elderjs.md