Comments (2)
I closed the issue because I decided that it wasn't going to achieve anything at the end of the day and I didn't want to be controversial for no reason, but since you've answered I'll tell you my view.
I guess you don't provide cjs because of dual package hazard concerns. While that is true you also suggest to use async imports in a library which is going to output commonjs code. Even if we don't consider the fact that this is only viable in async contexts, that same hazard exists for esm-only packages that get imported in commonjs projects via async imports so your suggestion goes against the reason why you decided to bundle pure esm in the first place and my library could bite other users because of that!
Also in my case the whole graphql ecosystem bundles dual packages and thus using instanceof
is already a big hazard (let's not talk about yarn link
which creates a similar issue).
The developer experience for esm modules on Typescript is still suboptimal because importing commonjs modules with default exports is a mess and the js extension in the imports is counterintuitive to say the least.
I personally think that it's still too early to target pure esm in a library but at the same time you cannot ignore deno/bun existence so dual package is the lesser evil. Just my two cents.
from node-fetch.
You can use async import to load esm modules in cjs
#1279
from node-fetch.
Related Issues (20)
- `node-fetch` does not work behind a proxy HOT 6
- Suggest: Align fetch function's type with the latest Typescript type on fetch function?
- node v20, closing server and re-listening between requests causes ECONNRESET HOT 3
- SSL error when setting host: header correctly HOT 1
- Node-fetch allows setting forbidden headers HOT 3
- Could not catch Premature close error HOT 1
- Broken clone() method in newer version of 3.3.* (at least)
- Critical dependency:
- failing without clear reason HOT 3
- FormData with invalid Content-Length HOT 2
- Can't import HOT 1
- v2.7.0: punycode is deprecated in 'whatwg-url' and 'tr46' HOT 3
- Faulty NPM upload 2.7.0 HOT 3
- The 'body' stream never ends for empty HTTP response bodies on Node 16 HOT 1
- Unhandled 'error' event when using AbortSignal to cancel requests HOT 2
- Andoka now
- bug issue
- Error [ERR_REQUIRE_ESM]: require() of ES Module
- Error [ERR_REQUIRE_ESM]: require() of ES Module HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-fetch.