nodejs.org icon indicating copy to clipboard operation
nodejs.org copied to clipboard

Create an explainer / hub page for unflagged require(ESM) support

Open JoshuaKGoldberg opened this issue 11 months ago • 3 comments

Enter your suggestions in details:

The new unflagged require(ESM) support in Node.js is very exciting. It's starting to let a lot of tools move to ESM without feat of leaving dependents behind. 🚀

But, there isn't one single high-level, official resource I can find that users can be pointed to to understand the unflagged support.

  • https://joyeecheung.github.io/blog/2024/03/18/require-esm-in-node-js/ is not official. It feels weird pointing folks to a third party platform. It also has a lot of details on historical context and decision-making that users who just want to learn the high level of the feature wouldn't want to have to read through. (it is a great blog post on its own though!)
  • https://nodejs.org/api/modules.html#loading-ecmascript-modules-using-require is very technical and dives into the weeds of the module system.

Proposal: can the Node.js site have a page added dedicated to the unflagged require(ESM) support? I'd imagine it could contain:

  1. What "require(ESM)" is
  2. Quick examples of requiring an ES module from a CJS file
  3. What versions of Node.js have it
    • Edit: ^20.19.0 || >=22.12.0 seems to be the common support target post-18.x
  4. Quick FAQs such as TLA being unsupported
  5. Links to learn more on the official Node.js website

Sibling issue to #7440, intentionally with as similar an issue body as possible.

JoshuaKGoldberg avatar Feb 01 '25 14:02 JoshuaKGoldberg

Thanks for opening the issue! I think this is what part of the package-examples aim to solve (e.g. in the Making ESM require-able chapter, the goal is to have some actual working examples there living side by side with the document), though this is still a WIP and I have not gotten to filling in the skeletons already laid out in there. Feel free to take a look at https://github.com/nodejs/package-examples/blob/main/CONTRIBUTING.md if anyone is interested ;)

joyeecheung avatar Feb 01 '25 15:02 joyeecheung

@JoshuaKGoldberg please assign me this issue

udaydevs avatar Apr 30 '25 15:04 udaydevs

Hi! You are more than welcome to work on resolving this issue, we'd actually really appreciate it!

However, we don't typically assign issues to users.

avivkeller avatar Apr 30 '25 15:04 avivkeller